@ibiz-template/runtime 0.1.28 → 0.1.29-dev.0
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 +1205 -265
- package/dist/index.system.min.js +1 -1
- package/dist/index.system.min.js.map +1 -1
- package/out/app-hub.d.ts +9 -0
- package/out/app-hub.d.ts.map +1 -1
- package/out/app-hub.js +4 -0
- package/out/application.d.ts +9 -1
- package/out/application.d.ts.map +1 -1
- package/out/application.js +2 -1
- package/out/controller/common/control/md-control.controller.d.ts.map +1 -1
- package/out/controller/common/control/md-control.controller.js +3 -0
- package/out/controller/common/view/view.controller.d.ts +23 -1
- package/out/controller/common/view/view.controller.d.ts.map +1 -1
- package/out/controller/common/view/view.controller.js +52 -0
- package/out/controller/control/dashboard/custom-dashboard.controller.d.ts +69 -0
- package/out/controller/control/dashboard/custom-dashboard.controller.d.ts.map +1 -0
- package/out/controller/control/dashboard/custom-dashboard.controller.js +85 -0
- package/out/controller/control/dashboard/index.d.ts +1 -0
- package/out/controller/control/dashboard/index.d.ts.map +1 -1
- package/out/controller/control/dashboard/index.js +1 -0
- package/out/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.d.ts +15 -1
- package/out/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.d.ts.map +1 -1
- package/out/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.js +26 -9
- package/out/controller/control/index.d.ts +2 -0
- package/out/controller/control/index.d.ts.map +1 -1
- package/out/controller/control/index.js +2 -0
- package/out/controller/control/tree-grid/index.d.ts +3 -0
- package/out/controller/control/tree-grid/index.d.ts.map +1 -0
- package/out/controller/control/tree-grid/index.js +2 -0
- package/out/controller/control/tree-grid/tree-grid.controller.d.ts +5 -0
- package/out/controller/control/tree-grid/tree-grid.controller.d.ts.map +1 -0
- package/out/controller/control/tree-grid/tree-grid.controller.js +3 -0
- package/out/controller/control/tree-grid/tree-grid.service.d.ts +13 -0
- package/out/controller/control/tree-grid/tree-grid.service.d.ts.map +1 -0
- package/out/controller/control/tree-grid/tree-grid.service.js +12 -0
- package/out/controller/control/tree-grid-ex/index.d.ts +3 -0
- package/out/controller/control/tree-grid-ex/index.d.ts.map +1 -0
- package/out/controller/control/tree-grid-ex/index.js +2 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.d.ts +134 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.d.ts.map +1 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.js +240 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex.service.d.ts +65 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex.service.d.ts.map +1 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex.service.js +143 -0
- package/out/controller/utils/event/controller-event.d.ts +7 -0
- package/out/controller/utils/event/controller-event.d.ts.map +1 -1
- package/out/controller/utils/event/controller-event.js +12 -0
- package/out/controller/utils/view-msg/index.d.ts +2 -0
- package/out/controller/utils/view-msg/index.d.ts.map +1 -0
- package/out/controller/utils/view-msg/index.js +1 -0
- package/out/controller/utils/view-msg/view-msg-controller.d.ts +69 -0
- package/out/controller/utils/view-msg/view-msg-controller.d.ts.map +1 -0
- package/out/controller/utils/view-msg/view-msg-controller.js +176 -0
- package/out/de-logic/de-logic-context.d.ts +8 -0
- package/out/de-logic/de-logic-context.d.ts.map +1 -1
- package/out/de-logic/de-logic-context.js +11 -0
- package/out/de-logic/de-logic-node/prepare-param-node/prepare-param-node.d.ts.map +1 -1
- package/out/de-logic/de-logic-node/prepare-param-node/prepare-param-node.js +5 -1
- package/out/de-logic/utils/handle-src-val.d.ts.map +1 -1
- package/out/de-logic/utils/handle-src-val.js +19 -8
- package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts +9 -0
- package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts.map +1 -1
- package/out/interface/common/i-app-service/i-app-service.d.ts +9 -0
- package/out/interface/common/i-app-service/i-app-service.d.ts.map +1 -1
- package/out/interface/controller/common/index.d.ts +1 -0
- package/out/interface/controller/common/index.d.ts.map +1 -1
- package/out/interface/controller/common/index.js +1 -0
- package/out/interface/controller/common/view-message/i-view-message.d.ts +39 -0
- package/out/interface/controller/common/view-message/i-view-message.d.ts.map +1 -0
- package/out/interface/controller/common/view-message/i-view-message.js +1 -0
- package/out/interface/controller/controller/control/i-tree-grid-ex.controller.d.ts +16 -0
- package/out/interface/controller/controller/control/i-tree-grid-ex.controller.d.ts.map +1 -0
- package/out/interface/controller/controller/control/i-tree-grid-ex.controller.js +1 -0
- package/out/interface/controller/controller/control/i-tree-grid.controller.d.ts +13 -0
- package/out/interface/controller/controller/control/i-tree-grid.controller.d.ts.map +1 -0
- package/out/interface/controller/controller/control/i-tree-grid.controller.js +1 -0
- package/out/interface/controller/controller/control/index.d.ts +2 -0
- package/out/interface/controller/controller/control/index.d.ts.map +1 -1
- package/out/interface/controller/controller/control/index.js +2 -0
- package/out/interface/controller/controller/control/portlet/i-portlet.controller.d.ts +7 -0
- package/out/interface/controller/controller/control/portlet/i-portlet.controller.d.ts.map +1 -1
- package/out/interface/controller/event/control/i-tree-grid-ex.event.d.ts +13 -0
- package/out/interface/controller/event/control/i-tree-grid-ex.event.d.ts.map +1 -0
- package/out/interface/controller/event/control/i-tree-grid-ex.event.js +1 -0
- package/out/interface/controller/event/control/i-tree-grid.event.d.ts +13 -0
- package/out/interface/controller/event/control/i-tree-grid.event.d.ts.map +1 -0
- package/out/interface/controller/event/control/i-tree-grid.event.js +1 -0
- package/out/interface/controller/event/control/index.d.ts +2 -0
- package/out/interface/controller/event/control/index.d.ts.map +1 -1
- package/out/interface/controller/event/control/index.js +2 -0
- package/out/interface/controller/event/view/i-tree-grid-ex-view.event.d.ts +12 -0
- package/out/interface/controller/event/view/i-tree-grid-ex-view.event.d.ts.map +1 -0
- package/out/interface/controller/event/view/i-tree-grid-ex-view.event.js +1 -0
- package/out/interface/controller/event/view/i-tree-grid-view.event.d.ts +12 -0
- package/out/interface/controller/event/view/i-tree-grid-view.event.d.ts.map +1 -0
- package/out/interface/controller/event/view/i-tree-grid-view.event.js +1 -0
- package/out/interface/controller/event/view/index.d.ts +2 -0
- package/out/interface/controller/event/view/index.d.ts.map +1 -1
- package/out/interface/controller/event/view/index.js +2 -0
- package/out/interface/controller/state/control/i-tree-grid-ex.state.d.ts +52 -0
- package/out/interface/controller/state/control/i-tree-grid-ex.state.d.ts.map +1 -0
- package/out/interface/controller/state/control/i-tree-grid-ex.state.js +1 -0
- package/out/interface/controller/state/control/i-tree-grid.state.d.ts +13 -0
- package/out/interface/controller/state/control/i-tree-grid.state.d.ts.map +1 -0
- package/out/interface/controller/state/control/i-tree-grid.state.js +1 -0
- package/out/interface/controller/state/control/index.d.ts +2 -0
- package/out/interface/controller/state/control/index.d.ts.map +1 -1
- package/out/interface/controller/state/control/index.js +2 -0
- package/out/interface/controller/state/view/i-tree-grid-ex-view.state.d.ts +13 -0
- package/out/interface/controller/state/view/i-tree-grid-ex-view.state.d.ts.map +1 -0
- package/out/interface/controller/state/view/i-tree-grid-ex-view.state.js +1 -0
- package/out/interface/controller/state/view/i-tree-grid-view.state.d.ts +13 -0
- package/out/interface/controller/state/view/i-tree-grid-view.state.d.ts.map +1 -0
- package/out/interface/controller/state/view/i-tree-grid-view.state.js +1 -0
- package/out/interface/controller/state/view/i-view.state.d.ts +10 -0
- package/out/interface/controller/state/view/i-view.state.d.ts.map +1 -1
- package/out/interface/controller/state/view/index.d.ts +2 -0
- package/out/interface/controller/state/view/index.d.ts.map +1 -1
- package/out/interface/controller/state/view/index.js +2 -0
- package/out/interface/provider/i-grid-column.provider.d.ts +2 -1
- package/out/interface/provider/i-grid-column.provider.d.ts.map +1 -1
- package/out/interface/service/service/i-app-de.service.d.ts +9 -0
- package/out/interface/service/service/i-app-de.service.d.ts.map +1 -1
- package/out/interface/service/service/i-config.service.d.ts +20 -0
- package/out/interface/service/service/i-config.service.d.ts.map +1 -0
- package/out/interface/service/service/i-config.service.js +1 -0
- package/out/interface/service/service/index.d.ts +1 -0
- package/out/interface/service/service/index.d.ts.map +1 -1
- package/out/service/app-data-entity/app-data-entity.d.ts +10 -0
- package/out/service/app-data-entity/app-data-entity.d.ts.map +1 -1
- package/out/service/app-data-entity/app-data-entity.js +40 -13
- package/out/service/service/config/config.service.d.ts +43 -0
- package/out/service/service/config/config.service.d.ts.map +1 -0
- package/out/service/service/config/config.service.js +54 -0
- package/out/service/service/entity/de.service.d.ts +9 -0
- package/out/service/service/entity/de.service.d.ts.map +1 -1
- package/out/service/service/entity/de.service.js +2 -0
- package/out/service/service/index.d.ts +1 -0
- package/out/service/service/index.d.ts.map +1 -1
- package/out/service/service/index.js +1 -0
- package/out/service/vo/control.vo.d.ts.map +1 -1
- package/out/service/vo/control.vo.js +1 -5
- package/out/ui-action/provider/backend-ui-action-provider.d.ts.map +1 -1
- package/out/ui-action/provider/backend-ui-action-provider.js +5 -2
- package/out/ui-action/provider/ui-action-provider-base.d.ts +12 -1
- package/out/ui-action/provider/ui-action-provider-base.d.ts.map +1 -1
- package/out/ui-action/provider/ui-action-provider-base.js +55 -5
- package/out/ui-logic/ui-logic-context.d.ts +8 -0
- package/out/ui-logic/ui-logic-context.d.ts.map +1 -1
- package/out/ui-logic/ui-logic-context.js +11 -0
- package/out/ui-logic/ui-logic-link/ui-logic-link.js +1 -1
- package/out/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.d.ts.map +1 -1
- package/out/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.js +5 -1
- package/out/ui-logic/utils/handle-src-val.d.ts.map +1 -1
- package/out/ui-logic/utils/handle-src-val.js +17 -4
- package/package.json +2 -2
- package/src/app-hub.ts +17 -0
- package/src/application.ts +20 -1
- package/src/controller/common/control/md-control.controller.ts +3 -0
- package/src/controller/common/view/view.controller.ts +67 -0
- package/src/controller/control/dashboard/custom-dashboard.controller.ts +107 -0
- package/src/controller/control/dashboard/index.ts +1 -0
- package/src/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.ts +32 -9
- package/src/controller/control/index.ts +2 -0
- package/src/controller/control/tree-grid/index.ts +2 -0
- package/src/controller/control/tree-grid/tree-grid.controller.ts +6 -0
- package/src/controller/control/tree-grid/tree-grid.service.ts +12 -0
- package/src/controller/control/tree-grid-ex/index.ts +2 -0
- package/src/controller/control/tree-grid-ex/tree-grid-ex.controller.ts +283 -0
- package/src/controller/control/tree-grid-ex/tree-grid-ex.service.ts +171 -0
- package/src/controller/utils/event/controller-event.ts +16 -0
- package/src/controller/utils/view-msg/index.ts +1 -0
- package/src/controller/utils/view-msg/view-msg-controller.ts +250 -0
- package/src/de-logic/de-logic-context.ts +12 -0
- package/src/de-logic/de-logic-node/prepare-param-node/prepare-param-node.ts +7 -1
- package/src/de-logic/utils/handle-src-val.ts +23 -10
- package/src/interface/common/i-app-hub-service/i-app-hub-service.ts +10 -0
- package/src/interface/common/i-app-service/i-app-service.ts +10 -0
- package/src/interface/controller/common/index.ts +1 -0
- package/src/interface/controller/common/view-message/i-view-message.ts +42 -0
- package/src/interface/controller/controller/control/i-tree-grid-ex.controller.ts +20 -0
- package/src/interface/controller/controller/control/i-tree-grid.controller.ts +12 -0
- package/src/interface/controller/controller/control/index.ts +2 -0
- package/src/interface/controller/controller/control/portlet/i-portlet.controller.ts +8 -0
- package/src/interface/controller/event/control/i-tree-grid-ex.event.ts +12 -0
- package/src/interface/controller/event/control/i-tree-grid.event.ts +12 -0
- package/src/interface/controller/event/control/index.ts +2 -0
- package/src/interface/controller/event/view/i-tree-grid-ex-view.event.ts +12 -0
- package/src/interface/controller/event/view/i-tree-grid-view.event.ts +12 -0
- package/src/interface/controller/event/view/index.ts +2 -0
- package/src/interface/controller/state/control/i-tree-grid-ex.state.ts +56 -0
- package/src/interface/controller/state/control/i-tree-grid.state.ts +12 -0
- package/src/interface/controller/state/control/index.ts +2 -0
- package/src/interface/controller/state/view/i-tree-grid-ex-view.state.ts +12 -0
- package/src/interface/controller/state/view/i-tree-grid-view.state.ts +12 -0
- package/src/interface/controller/state/view/i-view.state.ts +9 -0
- package/src/interface/controller/state/view/index.ts +2 -0
- package/src/interface/provider/i-grid-column.provider.ts +2 -1
- package/src/interface/service/service/i-app-de.service.ts +10 -0
- package/src/interface/service/service/i-config.service.ts +20 -0
- package/src/interface/service/service/index.ts +1 -0
- package/src/service/app-data-entity/app-data-entity.ts +44 -13
- package/src/service/service/config/config.service.ts +65 -0
- package/src/service/service/entity/de.service.ts +15 -0
- package/src/service/service/index.ts +1 -0
- package/src/service/vo/control.vo.ts +1 -6
- package/src/ui-action/provider/backend-ui-action-provider.ts +5 -2
- package/src/ui-action/provider/ui-action-provider-base.ts +68 -6
- package/src/ui-logic/ui-logic-context.ts +12 -0
- package/src/ui-logic/ui-logic-link/ui-logic-link.ts +1 -1
- package/src/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.ts +7 -1
- package/src/ui-logic/utils/handle-src-val.ts +20 -4
|
@@ -38,3 +38,5 @@ export * from './i-calendar-exp-view.state';
|
|
|
38
38
|
export * from './i-pickup-md-view.state';
|
|
39
39
|
export * from './i-kanban-view.state';
|
|
40
40
|
export * from './i-form-pickup-data-view.state';
|
|
41
|
+
export * from './i-tree-grid-view.state';
|
|
42
|
+
export * from './i-tree-grid-ex-view.state';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IDEGridColumn } from '@ibiz/model-core';
|
|
2
|
+
import { TreeGridExController } from '../../controller';
|
|
2
3
|
import { IGridColumnController, IGridController } from '../controller';
|
|
3
4
|
|
|
4
5
|
/**
|
|
@@ -31,7 +32,7 @@ export interface IGridColumnProvider {
|
|
|
31
32
|
*/
|
|
32
33
|
createController(
|
|
33
34
|
columnModel: IDEGridColumn,
|
|
34
|
-
grid: IGridController,
|
|
35
|
+
grid: IGridController | TreeGridExController,
|
|
35
36
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
36
37
|
): Promise<IGridColumnController>;
|
|
37
38
|
}
|
|
@@ -2,6 +2,7 @@ import { IHttpResponse } from '@ibiz-template/core';
|
|
|
2
2
|
import { DECache } from '../../../service/utils';
|
|
3
3
|
import { IFileService } from './i-file.service';
|
|
4
4
|
import { IWorkFlowService } from './i-wf.service';
|
|
5
|
+
import { IConfigService } from './i-config.service';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* 实体服务
|
|
@@ -21,6 +22,15 @@ export interface IAppDEService {
|
|
|
21
22
|
*/
|
|
22
23
|
readonly local: DECache;
|
|
23
24
|
|
|
25
|
+
/**
|
|
26
|
+
* 实体配置存储服务
|
|
27
|
+
*
|
|
28
|
+
* @author chitanda
|
|
29
|
+
* @date 2023-09-22 10:09:55
|
|
30
|
+
* @type {IConfigService}
|
|
31
|
+
*/
|
|
32
|
+
readonly configCache: IConfigService;
|
|
33
|
+
|
|
24
34
|
/**
|
|
25
35
|
* 工作流相关服务
|
|
26
36
|
*
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface IConfigService {
|
|
2
|
+
/**
|
|
3
|
+
* 保存配置
|
|
4
|
+
*
|
|
5
|
+
* @author chitanda
|
|
6
|
+
* @date 2023-09-22 10:09:05
|
|
7
|
+
* @param {IData} data
|
|
8
|
+
* @return {*} {Promise<boolean>}
|
|
9
|
+
*/
|
|
10
|
+
save(data: IData): Promise<boolean>;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* 加载配置
|
|
14
|
+
*
|
|
15
|
+
* @author chitanda
|
|
16
|
+
* @date 2023-09-22 10:09:10
|
|
17
|
+
* @return {*} {Promise<IData>}
|
|
18
|
+
*/
|
|
19
|
+
load(): Promise<IData>;
|
|
20
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export type { IAppDeAuthorityService } from './i-app-de-authority.service';
|
|
2
|
+
export type { IConfigService } from './i-config.service';
|
|
2
3
|
export type { IAppDEService } from './i-app-de.service';
|
|
3
4
|
export type { IAuthService } from './i-auth.service';
|
|
4
5
|
export type { IFileService } from './i-file.service';
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
/* eslint-disable no-constructor-return */
|
|
3
3
|
/* eslint-disable max-classes-per-file */
|
|
4
4
|
import { IAppDataEntity } from '@ibiz/model-core';
|
|
5
|
-
import { clone } from 'ramda';
|
|
5
|
+
import { clone, isNil } from 'ramda';
|
|
6
|
+
import { DataTypes } from '@ibiz-template/core';
|
|
6
7
|
import { Srfuf } from '../constant';
|
|
7
8
|
import { findModelChild } from '../../model';
|
|
8
9
|
import { IDataEntity } from '../../interface';
|
|
@@ -133,7 +134,7 @@ export class AppDataEntity implements IDataEntity {
|
|
|
133
134
|
* @protected
|
|
134
135
|
*/
|
|
135
136
|
protected defineProperties(): void {
|
|
136
|
-
const { _data } = this;
|
|
137
|
+
const { _data, convertVal } = this;
|
|
137
138
|
const properties: { [key: string]: PropertyDescriptor } = {};
|
|
138
139
|
const keys = Object.keys(_data);
|
|
139
140
|
keys.forEach(key => {
|
|
@@ -149,17 +150,17 @@ export class AppDataEntity implements IDataEntity {
|
|
|
149
150
|
});
|
|
150
151
|
this._entity.appDEFields?.forEach(field => {
|
|
151
152
|
const key = field.codeName!.toLowerCase();
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
153
|
+
properties[key] = {
|
|
154
|
+
enumerable: true,
|
|
155
|
+
set(val: unknown): void {
|
|
156
|
+
_data[key] = convertVal(val, field.stdDataType);
|
|
157
|
+
},
|
|
158
|
+
get(): any {
|
|
159
|
+
return _data[key];
|
|
160
|
+
},
|
|
161
|
+
};
|
|
162
|
+
// 初始值转换
|
|
163
|
+
_data[key] = convertVal(_data[key], field.stdDataType);
|
|
163
164
|
});
|
|
164
165
|
Object.defineProperties(this, properties);
|
|
165
166
|
}
|
|
@@ -193,4 +194,34 @@ export class AppDataEntity implements IDataEntity {
|
|
|
193
194
|
}
|
|
194
195
|
return this;
|
|
195
196
|
}
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* 根据属性的数据类型转换值
|
|
200
|
+
* @author lxm
|
|
201
|
+
* @date 2023-09-25 03:37:28
|
|
202
|
+
* @protected
|
|
203
|
+
* @param {unknown} value
|
|
204
|
+
* @param {(number | undefined)} dataType
|
|
205
|
+
* @return {*} {unknown}
|
|
206
|
+
*/
|
|
207
|
+
protected convertVal(value: unknown, dataType: number | undefined): unknown {
|
|
208
|
+
// 没有数据类型的给原值
|
|
209
|
+
if (isNil(dataType)) {
|
|
210
|
+
return value;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// 数值转换
|
|
214
|
+
if (DataTypes.isNumber(dataType)) {
|
|
215
|
+
const numVal = !isNil(value) && value !== '' ? Number(value) : value;
|
|
216
|
+
|
|
217
|
+
if (Number.isNaN(numVal)) {
|
|
218
|
+
// 不能转换的给原值
|
|
219
|
+
ibiz.log.debug(`${value}不能转换成数字`);
|
|
220
|
+
return value;
|
|
221
|
+
}
|
|
222
|
+
return numVal;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
return value;
|
|
226
|
+
}
|
|
196
227
|
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Application } from '../../../application';
|
|
2
|
+
import { IConfigService } from '../../../interface';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* 应用配置存储服务
|
|
6
|
+
*
|
|
7
|
+
* @author chitanda
|
|
8
|
+
* @date 2023-09-22 10:09:05
|
|
9
|
+
* @export
|
|
10
|
+
* @class ConfigService
|
|
11
|
+
*/
|
|
12
|
+
export class ConfigService implements IConfigService {
|
|
13
|
+
private app: Application;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Creates an instance of ConfigService.
|
|
17
|
+
*
|
|
18
|
+
* @author chitanda
|
|
19
|
+
* @date 2023-09-22 10:09:16
|
|
20
|
+
* @param {string} appId 应用标识
|
|
21
|
+
* @param {string} folder 定义文件夹
|
|
22
|
+
* @param {string} tag 存储标识
|
|
23
|
+
*/
|
|
24
|
+
constructor(
|
|
25
|
+
protected appId: string,
|
|
26
|
+
protected folder: string,
|
|
27
|
+
protected tag: string,
|
|
28
|
+
) {
|
|
29
|
+
this.app = ibiz.hub.getApp(appId);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* 保存配置
|
|
34
|
+
*
|
|
35
|
+
* @author chitanda
|
|
36
|
+
* @date 2023-09-22 10:09:05
|
|
37
|
+
* @param {IData} data
|
|
38
|
+
* @return {*} {Promise<boolean>}
|
|
39
|
+
*/
|
|
40
|
+
async save(data: IData): Promise<boolean> {
|
|
41
|
+
const res = await this.app.net.put(
|
|
42
|
+
`/configs/${this.folder}/${this.tag}`,
|
|
43
|
+
data,
|
|
44
|
+
);
|
|
45
|
+
if (res.ok) {
|
|
46
|
+
return res.data as unknown as boolean;
|
|
47
|
+
}
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* 加载配置
|
|
53
|
+
*
|
|
54
|
+
* @author chitanda
|
|
55
|
+
* @date 2023-09-22 10:09:10
|
|
56
|
+
* @return {*} {Promise<IData>}
|
|
57
|
+
*/
|
|
58
|
+
async load(): Promise<IData> {
|
|
59
|
+
const res = await this.app.net.get(`/configs/${this.folder}/${this.tag}`);
|
|
60
|
+
if (res.ok) {
|
|
61
|
+
return res.data;
|
|
62
|
+
}
|
|
63
|
+
return {};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -8,6 +8,7 @@ import { findModelChild } from '../../../model';
|
|
|
8
8
|
import { DEActionMethod } from './method/de-action';
|
|
9
9
|
import { FetchMethod } from './method/fetch';
|
|
10
10
|
import { IAppDEService } from '../../../interface';
|
|
11
|
+
import { ConfigService } from '../config/config.service';
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* 实体服务
|
|
@@ -18,6 +19,15 @@ import { IAppDEService } from '../../../interface';
|
|
|
18
19
|
* @class DEService
|
|
19
20
|
*/
|
|
20
21
|
export class DEService implements IAppDEService {
|
|
22
|
+
/**
|
|
23
|
+
* 实体配置存储服务
|
|
24
|
+
*
|
|
25
|
+
* @author chitanda
|
|
26
|
+
* @date 2023-09-22 10:09:55
|
|
27
|
+
* @type {ConfigService}
|
|
28
|
+
*/
|
|
29
|
+
readonly configCache: ConfigService;
|
|
30
|
+
|
|
21
31
|
/**
|
|
22
32
|
* 工作流相关服务
|
|
23
33
|
*
|
|
@@ -63,6 +73,11 @@ export class DEService implements IAppDEService {
|
|
|
63
73
|
* @param {IAppDataEntity} model 应用实体模型
|
|
64
74
|
*/
|
|
65
75
|
constructor(protected model: IAppDataEntity) {
|
|
76
|
+
this.configCache = new ConfigService(
|
|
77
|
+
model.appId!,
|
|
78
|
+
'PSAppDataEntity',
|
|
79
|
+
model.codeName!,
|
|
80
|
+
);
|
|
66
81
|
this.wf = new WorkFlowService(model);
|
|
67
82
|
this.file = new FileService(model);
|
|
68
83
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { CodeListService } from './code-list/code-list.service';
|
|
2
|
+
export { ConfigService } from './config/config.service';
|
|
2
3
|
export { CounterService } from './counter/counter.service';
|
|
3
4
|
export { DEService } from './entity/de.service';
|
|
4
5
|
export { WorkFlowService } from './work-flow/work-flow.service';
|
|
@@ -192,14 +192,9 @@ export class ControlVO {
|
|
|
192
192
|
},
|
|
193
193
|
set(val) {
|
|
194
194
|
// 有mapField的走它的转换
|
|
195
|
-
this.$origin[dataKey] =
|
|
195
|
+
this.$origin[dataKey] = val;
|
|
196
196
|
},
|
|
197
197
|
});
|
|
198
|
-
|
|
199
|
-
// 一开始初始化的时候先把值转换一下。
|
|
200
|
-
if (mapField) {
|
|
201
|
-
this[uiKey] = mapField.convertVal(this.$origin[dataKey]);
|
|
202
|
-
}
|
|
203
198
|
} else {
|
|
204
199
|
Object.defineProperty(this, uiKey, {
|
|
205
200
|
enumerable: true,
|
|
@@ -77,8 +77,11 @@ export class BackendUIActionProvider extends UIActionProviderBase {
|
|
|
77
77
|
);
|
|
78
78
|
|
|
79
79
|
// 适配界面行为成功提示信息
|
|
80
|
-
if (res.ok
|
|
81
|
-
|
|
80
|
+
if (res.ok) {
|
|
81
|
+
const successMsg = this.calcMessage('success', action, args);
|
|
82
|
+
if (successMsg) {
|
|
83
|
+
ibiz.message.success(successMsg);
|
|
84
|
+
}
|
|
82
85
|
}
|
|
83
86
|
Object.assign(actionResult, {
|
|
84
87
|
data: isArray(res.data) ? res.data : [res.data],
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RuntimeModelError } from '@ibiz-template/core';
|
|
2
|
-
import { IAppDEUIAction, INavigateParam } from '@ibiz/model-core';
|
|
2
|
+
import { IAppDEUIAction, ILanguageRes, INavigateParam } from '@ibiz/model-core';
|
|
3
3
|
import {
|
|
4
4
|
IUIActionProvider,
|
|
5
5
|
IUIActionResult,
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
} from '../../interface';
|
|
8
8
|
import { calcDeCodeNameById } from '../../model';
|
|
9
9
|
import { execUILogic } from '../../ui-logic';
|
|
10
|
-
import { convertNavData, formatMultiData } from '../../utils';
|
|
10
|
+
import { convertNavData, formatMultiData, ScriptFactory } from '../../utils';
|
|
11
11
|
import { UIActionUtil } from '../uiaction-util';
|
|
12
12
|
|
|
13
13
|
/**
|
|
@@ -49,7 +49,7 @@ export abstract class UIActionProviderBase implements IUIActionProvider {
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
// **用户操作确认**
|
|
52
|
-
if (!(await this.isConfirm(action))) {
|
|
52
|
+
if (!(await this.isConfirm(action, args))) {
|
|
53
53
|
return this.returnError(result);
|
|
54
54
|
}
|
|
55
55
|
|
|
@@ -110,9 +110,13 @@ export abstract class UIActionProviderBase implements IUIActionProvider {
|
|
|
110
110
|
* @param {IAppDEUIAction} action 界面行为模型
|
|
111
111
|
* @returns {*} {Promise<boolean>}
|
|
112
112
|
*/
|
|
113
|
-
async isConfirm(
|
|
114
|
-
|
|
115
|
-
|
|
113
|
+
async isConfirm(
|
|
114
|
+
action: IAppDEUIAction,
|
|
115
|
+
args: IUILogicParams,
|
|
116
|
+
): Promise<boolean> {
|
|
117
|
+
const confirmMsg = this.calcMessage('confirm', action, args);
|
|
118
|
+
if (action.enableConfirm && confirmMsg) {
|
|
119
|
+
return ibiz.modal.confirm({ title: confirmMsg });
|
|
116
120
|
}
|
|
117
121
|
return true;
|
|
118
122
|
}
|
|
@@ -265,4 +269,62 @@ export abstract class UIActionProviderBase implements IUIActionProvider {
|
|
|
265
269
|
);
|
|
266
270
|
return { resultContext, resultData, resultParams };
|
|
267
271
|
}
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* 计算消息信息(动态,多语言资源)
|
|
275
|
+
* @author lxm
|
|
276
|
+
* @date 2023-09-25 03:03:01
|
|
277
|
+
* @protected
|
|
278
|
+
* @param {('confirm' | 'success')} type
|
|
279
|
+
* @param {IAppDEUIAction} action
|
|
280
|
+
* @param {IUILogicParams} args
|
|
281
|
+
* @return {*}
|
|
282
|
+
*/
|
|
283
|
+
protected calcMessage(
|
|
284
|
+
type: 'confirm' | 'success',
|
|
285
|
+
action: IAppDEUIAction,
|
|
286
|
+
args: IUILogicParams,
|
|
287
|
+
): string | undefined {
|
|
288
|
+
let msg: string | undefined;
|
|
289
|
+
let msgRes: ILanguageRes | undefined;
|
|
290
|
+
const { confirmMsg, cmlanguageRes, successMsg, smlanguageRes } = action;
|
|
291
|
+
switch (type) {
|
|
292
|
+
case 'confirm':
|
|
293
|
+
msg = confirmMsg;
|
|
294
|
+
msgRes = cmlanguageRes;
|
|
295
|
+
break;
|
|
296
|
+
case 'success':
|
|
297
|
+
msg = successMsg;
|
|
298
|
+
msgRes = smlanguageRes;
|
|
299
|
+
break;
|
|
300
|
+
default:
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
// 多语言资源转换
|
|
304
|
+
if (msgRes) {
|
|
305
|
+
const msgResContent = ibiz.i18n.t(
|
|
306
|
+
msgRes.lanResTag!,
|
|
307
|
+
msgRes.defaultContent || msg,
|
|
308
|
+
);
|
|
309
|
+
if (msgResContent !== msgRes.lanResTag) {
|
|
310
|
+
msg = msgResContent;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
if (msg) {
|
|
315
|
+
const { data } = args;
|
|
316
|
+
const scriptParams: IParams = { ...args };
|
|
317
|
+
if (data.length === 1) {
|
|
318
|
+
// 单数据
|
|
319
|
+
[scriptParams.data] = data;
|
|
320
|
+
} else if (data.length === 0) {
|
|
321
|
+
// 无数据
|
|
322
|
+
delete scriptParams.data;
|
|
323
|
+
}
|
|
324
|
+
return ScriptFactory.execScriptFn(scriptParams, `\`${msg}\``, {
|
|
325
|
+
isAsync: false,
|
|
326
|
+
singleRowReturn: true,
|
|
327
|
+
}) as string;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
268
330
|
}
|
|
@@ -143,4 +143,16 @@ export class UILogicContext {
|
|
|
143
143
|
get: () => this.lastReturn,
|
|
144
144
|
});
|
|
145
145
|
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* 是否是实体参数变量(即后台数据对象)
|
|
149
|
+
* @author lxm
|
|
150
|
+
* @date 2023-09-22 03:40:30
|
|
151
|
+
* @param {string} paramId
|
|
152
|
+
* @return {*} {boolean}
|
|
153
|
+
*/
|
|
154
|
+
isEntityParam(paramId: string): boolean {
|
|
155
|
+
const deLogicParams = this.deLogicParams.get(paramId);
|
|
156
|
+
return !!(deLogicParams && deLogicParams.model.entityParam);
|
|
157
|
+
}
|
|
146
158
|
}
|
|
@@ -49,7 +49,7 @@ export class UILogicLink {
|
|
|
49
49
|
*/
|
|
50
50
|
constructor(public model: IDEUILogicLink) {
|
|
51
51
|
const { linkMode, deuilogicLinkGroupCond } = this.model;
|
|
52
|
-
if (linkMode === 0) {
|
|
52
|
+
if ((linkMode || 0) === 0) {
|
|
53
53
|
if (deuilogicLinkGroupCond) {
|
|
54
54
|
this.groupCond = new UILogicLinkGroupCond(deuilogicLinkGroupCond);
|
|
55
55
|
}
|
|
@@ -74,7 +74,13 @@ export class PrepareJSParamNode extends UILogicNode {
|
|
|
74
74
|
): void {
|
|
75
75
|
const { dstFieldName, dstDEUILogicParamId } = nodeParam;
|
|
76
76
|
// 目标参数
|
|
77
|
-
|
|
77
|
+
let dstField = dstFieldName;
|
|
78
|
+
|
|
79
|
+
// 实体参数对象转小写
|
|
80
|
+
if (ctx.isEntityParam(dstDEUILogicParamId!)) {
|
|
81
|
+
dstField = dstField?.toLowerCase();
|
|
82
|
+
}
|
|
83
|
+
|
|
78
84
|
// 源参数
|
|
79
85
|
const srcVal = handleSrcVal(ctx, nodeParam);
|
|
80
86
|
if (dstField) {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ModelError } from '@ibiz-template/core';
|
|
2
2
|
import { clone } from 'ramda';
|
|
3
|
+
import { ScriptFactory } from '../../utils';
|
|
3
4
|
import { UILogicContext } from '../ui-logic-context';
|
|
4
5
|
|
|
5
6
|
type SrcValParams = {
|
|
@@ -37,12 +38,18 @@ export function handleSrcVal(
|
|
|
37
38
|
const { srcDEUILogicParamId, srcFieldName, srcValue } = srcValParams;
|
|
38
39
|
// 没有源值类型就是逻辑参数
|
|
39
40
|
const srcValueType = srcValParams.srcValueType || 'SRCDLPARAM';
|
|
41
|
+
// 取属性值
|
|
42
|
+
let srcField = srcFieldName;
|
|
40
43
|
|
|
41
44
|
let value: unknown;
|
|
42
45
|
switch (srcValueType) {
|
|
43
46
|
// 源逻辑参数
|
|
44
47
|
case 'SRCDLPARAM':
|
|
45
48
|
value = ctx.params[srcDEUILogicParamId!];
|
|
49
|
+
// 如果是实体参数对象则转换成小写。
|
|
50
|
+
if (ctx.isEntityParam(srcDEUILogicParamId!)) {
|
|
51
|
+
srcField = srcField?.toLowerCase();
|
|
52
|
+
}
|
|
46
53
|
break;
|
|
47
54
|
// 空值类型
|
|
48
55
|
case 'NULLVALUE':
|
|
@@ -71,11 +78,20 @@ export function handleSrcVal(
|
|
|
71
78
|
throw new ModelError(srcValParams, `暂未支持源值类型${srcValueType}`);
|
|
72
79
|
}
|
|
73
80
|
|
|
74
|
-
// 取属性值
|
|
75
|
-
const srcField = srcFieldName;
|
|
76
81
|
if (value && srcField) {
|
|
77
|
-
|
|
78
|
-
|
|
82
|
+
try {
|
|
83
|
+
value = ScriptFactory.execScriptFn(
|
|
84
|
+
{ srcValue: value },
|
|
85
|
+
`srcValue.${srcField}`,
|
|
86
|
+
{
|
|
87
|
+
singleRowReturn: true,
|
|
88
|
+
isAsync: false,
|
|
89
|
+
},
|
|
90
|
+
);
|
|
91
|
+
} catch (error) {
|
|
92
|
+
ibiz.log.error(`从源参数取属性${srcField}报错,源参数:`, value);
|
|
93
|
+
throw error;
|
|
94
|
+
}
|
|
79
95
|
}
|
|
80
96
|
|
|
81
97
|
return value;
|