@ibiz-template/runtime 0.1.8 → 0.1.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 +4313 -4022
- package/dist/index.system.min.js +1 -1
- package/dist/index.system.min.js.map +1 -1
- package/out/app-hub.d.ts +8 -0
- package/out/app-hub.d.ts.map +1 -1
- package/out/app-hub.js +8 -0
- package/out/command/app/open-app-view/open-app-view.js +5 -5
- package/out/config/global-config.js +1 -1
- package/out/controller/common/control/control.controller.d.ts +9 -1
- package/out/controller/common/control/control.controller.d.ts.map +1 -1
- package/out/controller/common/control/control.controller.js +17 -7
- package/out/controller/common/view/view.controller.d.ts +1 -0
- package/out/controller/common/view/view.controller.d.ts.map +1 -1
- package/out/controller/common/view/view.controller.js +6 -3
- package/out/controller/hub.controller.d.ts +16 -0
- package/out/controller/hub.controller.d.ts.map +1 -0
- package/out/controller/hub.controller.js +20 -0
- package/out/controller/index.d.ts +1 -0
- package/out/controller/index.d.ts.map +1 -1
- package/out/controller/index.js +1 -0
- package/out/controller/utils/value-rule/value-rule.d.ts.map +1 -1
- package/out/controller/utils/value-rule/value-rule.js +1 -1
- 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-ui-action-result/i-ui-action-result.d.ts +7 -0
- package/out/interface/common/i-ui-action-result/i-ui-action-result.d.ts.map +1 -1
- package/out/interface/controller/app.d.ts +37 -0
- package/out/interface/controller/app.d.ts.map +1 -0
- package/out/interface/controller/app.js +1 -0
- package/out/interface/controller/controller/control/i-context-menu.controller.d.ts +15 -0
- package/out/interface/controller/controller/control/i-context-menu.controller.d.ts.map +1 -0
- package/out/interface/controller/controller/control/i-context-menu.controller.js +1 -0
- package/out/interface/controller/controller/control/i-form.controller.d.ts +7 -0
- package/out/interface/controller/controller/control/i-form.controller.d.ts.map +1 -1
- package/out/interface/controller/controller/control/i-grid.controller.d.ts +9 -1
- package/out/interface/controller/controller/control/i-grid.controller.d.ts.map +1 -1
- package/out/interface/controller/controller/control/i-toolbar.controller.d.ts +2 -2
- package/out/interface/controller/controller/control/i-toolbar.controller.d.ts.map +1 -1
- package/out/interface/controller/controller/control/i-tree.controller.d.ts +6 -4
- package/out/interface/controller/controller/control/i-tree.controller.d.ts.map +1 -1
- package/out/interface/controller/controller/control/index.d.ts +1 -0
- package/out/interface/controller/controller/control/index.d.ts.map +1 -1
- package/out/interface/controller/controller/control/index.js +1 -0
- package/out/interface/controller/controller/view/i-view.controller.d.ts +8 -0
- package/out/interface/controller/controller/view/i-view.controller.d.ts.map +1 -1
- package/out/interface/controller/event/control/i-context-menu.event.d.ts +11 -0
- package/out/interface/controller/event/control/i-context-menu.event.d.ts.map +1 -0
- package/out/interface/controller/event/control/i-context-menu.event.js +1 -0
- package/out/interface/controller/event/control/i-pickup-view-panel.event.d.ts +0 -15
- package/out/interface/controller/event/control/i-pickup-view-panel.event.d.ts.map +1 -1
- package/out/interface/controller/event/control/index.d.ts +1 -0
- package/out/interface/controller/event/control/index.d.ts.map +1 -1
- package/out/interface/controller/event/control/index.js +1 -0
- package/out/interface/controller/event/view/i-pickup-md-view.event.d.ts +31 -0
- package/out/interface/controller/event/view/i-pickup-md-view.event.d.ts.map +1 -0
- package/out/interface/controller/event/view/i-pickup-md-view.event.js +1 -0
- package/out/interface/controller/event/view/index.d.ts +1 -0
- package/out/interface/controller/event/view/index.d.ts.map +1 -1
- package/out/interface/controller/event/view/index.js +1 -0
- package/out/interface/controller/index.d.ts +1 -0
- package/out/interface/controller/index.d.ts.map +1 -1
- package/out/interface/controller/state/control/i-context-menu.state.d.ts +11 -0
- package/out/interface/controller/state/control/i-context-menu.state.d.ts.map +1 -0
- package/out/interface/controller/state/control/i-context-menu.state.js +1 -0
- package/out/interface/controller/state/control/i-tree-exp-bar.state.d.ts +8 -0
- package/out/interface/controller/state/control/i-tree-exp-bar.state.d.ts.map +1 -1
- package/out/interface/controller/state/control/i-tree.state.d.ts +1 -10
- package/out/interface/controller/state/control/i-tree.state.d.ts.map +1 -1
- package/out/interface/controller/state/control/index.d.ts +1 -0
- package/out/interface/controller/state/control/index.d.ts.map +1 -1
- package/out/interface/controller/state/control/index.js +1 -0
- package/out/interface/controller/state/view/i-pickup-md-view.state.d.ts +22 -0
- package/out/interface/controller/state/view/i-pickup-md-view.state.d.ts.map +1 -0
- package/out/interface/controller/state/view/i-pickup-md-view.state.js +1 -0
- package/out/interface/controller/state/view/index.d.ts +1 -0
- package/out/interface/controller/state/view/index.d.ts.map +1 -1
- package/out/interface/controller/state/view/index.js +1 -0
- package/out/interface/util/i-open-view-util/i-open-view-util.d.ts +11 -11
- package/out/interface/util/i-open-view-util/i-open-view-util.d.ts.map +1 -1
- package/out/interface/util/script/i-script-function.d.ts +8 -1
- package/out/interface/util/script/i-script-function.d.ts.map +1 -1
- package/out/logic-scheduler/executor/script-executor.d.ts +6 -6
- package/out/logic-scheduler/executor/script-executor.d.ts.map +1 -1
- package/out/logic-scheduler/executor/script-executor.js +10 -14
- package/out/logic-scheduler/trigger/item-dyna-logic-trigger.d.ts +1 -0
- package/out/logic-scheduler/trigger/item-dyna-logic-trigger.d.ts.map +1 -1
- package/out/logic-scheduler/trigger/item-dyna-logic-trigger.js +6 -2
- package/out/logic-scheduler/trigger/logic-trigger.d.ts +8 -0
- package/out/logic-scheduler/trigger/logic-trigger.d.ts.map +1 -1
- package/out/logic-scheduler/trigger/logic-trigger.js +17 -0
- package/out/model/layout/layout.d.ts.map +1 -1
- package/out/model/layout/layout.js +1 -0
- package/out/register/helper/common-register.d.ts +11 -0
- package/out/register/helper/common-register.d.ts.map +1 -0
- package/out/register/helper/common-register.js +20 -0
- package/out/register/helper/control-register.d.ts.map +1 -1
- package/out/register/helper/control-register.js +22 -5
- package/out/register/helper/editor-register.d.ts.map +1 -1
- package/out/register/helper/editor-register.js +25 -5
- package/out/register/helper/form-detail-register.d.ts.map +1 -1
- package/out/register/helper/form-detail-register.js +19 -5
- package/out/register/helper/grid-column-register.d.ts.map +1 -1
- package/out/register/helper/grid-column-register.js +19 -5
- package/out/register/helper/panel-item-register.d.ts.map +1 -1
- package/out/register/helper/panel-item-register.js +25 -5
- package/out/register/helper/portlet-register.d.ts.map +1 -1
- package/out/register/helper/portlet-register.js +19 -5
- package/out/register/helper/ui-action-register.d.ts.map +1 -1
- package/out/register/helper/ui-action-register.js +19 -5
- package/out/register/helper/view-register.d.ts.map +1 -1
- package/out/register/helper/view-register.js +18 -1
- package/out/service/app-data-entity/app-data-entity.d.ts.map +1 -1
- package/out/service/app-data-entity/app-data-entity.js +0 -1
- package/out/service/service/counter/counter.service.d.ts.map +1 -1
- package/out/service/service/counter/counter.service.js +4 -1
- 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 +3 -1
- package/out/ui-action/provider/sys-ui-action-provider.d.ts +1 -0
- package/out/ui-action/provider/sys-ui-action-provider.d.ts.map +1 -1
- package/out/ui-action/provider/sys-ui-action-provider.js +42 -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 +1 -0
- package/out/ui-action/uiaction-util.d.ts.map +1 -1
- package/out/ui-action/uiaction-util.js +13 -1
- package/out/utils/script/script-function.d.ts +9 -0
- package/out/utils/script/script-function.d.ts.map +1 -1
- package/out/utils/script/script-function.js +75 -1
- package/out/utils/verify/de-rule-verify.js +1 -1
- package/package.json +4 -4
- package/src/app-hub.ts +9 -0
- package/src/command/app/open-app-view/open-app-view.ts +5 -5
- package/src/config/global-config.ts +1 -1
- package/src/controller/common/control/control.controller.ts +19 -9
- package/src/controller/common/view/view.controller.ts +9 -3
- package/src/controller/hub.controller.ts +22 -0
- package/src/controller/index.ts +1 -0
- package/src/controller/utils/value-rule/value-rule.ts +1 -0
- package/src/interface/common/i-app-hub-service/i-app-hub-service.ts +10 -0
- package/src/interface/common/i-ui-action-result/i-ui-action-result.ts +8 -0
- package/src/interface/controller/app.ts +38 -0
- package/src/interface/controller/controller/control/i-context-menu.controller.ts +19 -0
- package/src/interface/controller/controller/control/i-form.controller.ts +8 -0
- package/src/interface/controller/controller/control/i-grid.controller.ts +10 -1
- package/src/interface/controller/controller/control/i-toolbar.controller.ts +6 -3
- package/src/interface/controller/controller/control/i-tree.controller.ts +9 -4
- package/src/interface/controller/controller/control/index.ts +1 -0
- package/src/interface/controller/controller/view/i-view.controller.ts +9 -0
- package/src/interface/controller/event/control/i-context-menu.event.ts +10 -0
- package/src/interface/controller/event/control/i-pickup-view-panel.event.ts +0 -16
- package/src/interface/controller/event/control/index.ts +1 -0
- package/src/interface/controller/event/view/i-pickup-md-view.event.ts +29 -0
- package/src/interface/controller/event/view/index.ts +1 -0
- package/src/interface/controller/index.ts +1 -0
- package/src/interface/controller/state/control/i-context-menu.state.ts +10 -0
- package/src/interface/controller/state/control/i-tree-exp-bar.state.ts +10 -1
- package/src/interface/controller/state/control/i-tree.state.ts +1 -9
- package/src/interface/controller/state/control/index.ts +1 -0
- package/src/interface/controller/state/view/i-pickup-md-view.state.ts +22 -0
- package/src/interface/controller/state/view/index.ts +1 -0
- package/src/interface/util/i-open-view-util/i-open-view-util.ts +11 -11
- package/src/interface/util/script/i-script-function.ts +9 -1
- package/src/logic-scheduler/executor/script-executor.ts +11 -14
- package/src/logic-scheduler/trigger/item-dyna-logic-trigger.ts +8 -2
- package/src/logic-scheduler/trigger/logic-trigger.ts +19 -0
- package/src/model/layout/layout.ts +1 -0
- package/src/register/helper/common-register.ts +28 -0
- package/src/register/helper/control-register.ts +21 -6
- package/src/register/helper/editor-register.ts +22 -7
- package/src/register/helper/form-detail-register.ts +18 -6
- package/src/register/helper/grid-column-register.ts +19 -6
- package/src/register/helper/panel-item-register.ts +22 -6
- package/src/register/helper/portlet-register.ts +19 -6
- package/src/register/helper/ui-action-register.ts +19 -6
- package/src/register/helper/view-register.ts +18 -1
- package/src/service/app-data-entity/app-data-entity.ts +0 -1
- package/src/service/service/counter/counter.service.ts +4 -1
- package/src/service/vo/tree-node-data/tree-data-set-node-data.ts +3 -0
- package/src/ui-action/provider/sys-ui-action-provider.ts +41 -1
- package/src/ui-action/provider/ui-action-provider-base.ts +1 -0
- package/src/ui-action/uiaction-util.ts +12 -1
- package/src/utils/script/script-function.ts +77 -2
- package/src/utils/verify/de-rule-verify.ts +1 -0
|
@@ -6,6 +6,7 @@ import { mergeRight } from 'ramda';
|
|
|
6
6
|
const DefaultOptions = {
|
|
7
7
|
/** 是否是单行脚本,并把表达式结果return */
|
|
8
8
|
singleRowReturn: false,
|
|
9
|
+
isAsync: true,
|
|
9
10
|
};
|
|
10
11
|
export class ScriptFunction {
|
|
11
12
|
constructor(argKeys, scriptCode, options = DefaultOptions) {
|
|
@@ -32,6 +33,9 @@ export class ScriptFunction {
|
|
|
32
33
|
if (options.singleRowReturn) {
|
|
33
34
|
code = `return (${code})`;
|
|
34
35
|
}
|
|
36
|
+
if (options.isAsync) {
|
|
37
|
+
code = `return (async function() { ${code}} )();`;
|
|
38
|
+
}
|
|
35
39
|
return code;
|
|
36
40
|
}
|
|
37
41
|
/**
|
|
@@ -46,7 +50,26 @@ export class ScriptFunction {
|
|
|
46
50
|
const keys = options.presetParams ? Object.keys(options.presetParams) : [];
|
|
47
51
|
keys.push(...argKeys);
|
|
48
52
|
// 预置提供的参数
|
|
49
|
-
|
|
53
|
+
const presetArgsKeys = [
|
|
54
|
+
'document',
|
|
55
|
+
'el',
|
|
56
|
+
'selector',
|
|
57
|
+
'env',
|
|
58
|
+
'appSession',
|
|
59
|
+
'topViewSession',
|
|
60
|
+
'viewSession',
|
|
61
|
+
'context',
|
|
62
|
+
'viewParam',
|
|
63
|
+
'activeData',
|
|
64
|
+
'data',
|
|
65
|
+
'app',
|
|
66
|
+
'topView',
|
|
67
|
+
'parentView',
|
|
68
|
+
'view',
|
|
69
|
+
'parent',
|
|
70
|
+
'util',
|
|
71
|
+
];
|
|
72
|
+
keys.push(...presetArgsKeys);
|
|
50
73
|
// 除重
|
|
51
74
|
this.argKeys = Array.from(new Set(keys));
|
|
52
75
|
}
|
|
@@ -70,10 +93,61 @@ export class ScriptFunction {
|
|
|
70
93
|
// 对象参数转数组
|
|
71
94
|
const result = [];
|
|
72
95
|
this.argKeys.forEach(key => {
|
|
96
|
+
if (_params[key] === undefined) {
|
|
97
|
+
this.fillDefaultParams(key, _params);
|
|
98
|
+
}
|
|
73
99
|
result.push(_params[key]);
|
|
74
100
|
});
|
|
75
101
|
return result;
|
|
76
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* 填充预置参数
|
|
105
|
+
* @author lxm
|
|
106
|
+
* @date 2023-08-21 04:07:50
|
|
107
|
+
* @protected
|
|
108
|
+
* @param {string} key
|
|
109
|
+
* @param {IParams} param
|
|
110
|
+
*/
|
|
111
|
+
fillDefaultParams(key, param) {
|
|
112
|
+
const view = param.view;
|
|
113
|
+
switch (key) {
|
|
114
|
+
case 'util': // 工具类
|
|
115
|
+
param.util = {
|
|
116
|
+
message: ibiz.message,
|
|
117
|
+
notification: ibiz.notification,
|
|
118
|
+
modal: ibiz.modal,
|
|
119
|
+
confirm: ibiz.confirm,
|
|
120
|
+
openView: ibiz.openView,
|
|
121
|
+
};
|
|
122
|
+
break;
|
|
123
|
+
case 'env': // 全局环境变量
|
|
124
|
+
param.env = ibiz.env;
|
|
125
|
+
break;
|
|
126
|
+
case 'app': // 应用级的控制器
|
|
127
|
+
param.app = ibiz.hub.controller;
|
|
128
|
+
break;
|
|
129
|
+
case 'parent': // 父容器控制器
|
|
130
|
+
param.parent = view === null || view === void 0 ? void 0 : view.parentView;
|
|
131
|
+
break;
|
|
132
|
+
case 'topView': // 顶级视图控制器
|
|
133
|
+
param.topView = view === null || view === void 0 ? void 0 : view.getTopView();
|
|
134
|
+
break;
|
|
135
|
+
case 'parentView': // 父级视图控制器
|
|
136
|
+
param.parentView = view === null || view === void 0 ? void 0 : view.parentView;
|
|
137
|
+
break;
|
|
138
|
+
case 'topViewSession': // 顶级视图共享数据对象
|
|
139
|
+
param.topViewSession = view === null || view === void 0 ? void 0 : view.getTopView().session;
|
|
140
|
+
break;
|
|
141
|
+
case 'viewSession': // 当前视图共享数据对象
|
|
142
|
+
param.viewSession = view === null || view === void 0 ? void 0 : view.session;
|
|
143
|
+
break;
|
|
144
|
+
case 'appSession': // 全局共享数据对象
|
|
145
|
+
param.appSession = ibiz.hub.controller.session;
|
|
146
|
+
break;
|
|
147
|
+
default:
|
|
148
|
+
break;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
77
151
|
/**
|
|
78
152
|
* 执行脚本代码
|
|
79
153
|
* @author lxm
|
|
@@ -361,7 +361,7 @@ function checkFieldScriptRule(value, data, scriptCode, errorInfo, primaryModel)
|
|
|
361
361
|
};
|
|
362
362
|
try {
|
|
363
363
|
// 避免脚本内变量冲突
|
|
364
|
-
const result = ScriptFactory.execScriptFn({ value, data: source }, scriptCode);
|
|
364
|
+
const result = ScriptFactory.execScriptFn({ value, data: source }, scriptCode, { isAsync: false });
|
|
365
365
|
if (typeof result === 'boolean') {
|
|
366
366
|
resultBoolean = result;
|
|
367
367
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ibiz-template/runtime",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.10",
|
|
4
4
|
"description": "控制器包",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "out/index.js",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"license": "MIT",
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@ibiz-template/core": "^0.1.8",
|
|
33
|
-
"@ibiz/model-core": "^0.0.
|
|
33
|
+
"@ibiz/model-core": "^0.0.15",
|
|
34
34
|
"@types/path-browserify": "^1.0.0",
|
|
35
35
|
"@types/qs": "^6.9.7",
|
|
36
36
|
"@types/systemjs": "^6.13.1",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
|
46
46
|
"@ibiz-template/core": "^0.1.0",
|
|
47
|
-
"@ibiz/model-core": "^0.0.
|
|
47
|
+
"@ibiz/model-core": "^0.0.15",
|
|
48
48
|
"async-validator": "^4.2.5",
|
|
49
49
|
"dayjs": "^1.11.7",
|
|
50
50
|
"lodash-es": "^4.17.21",
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
"qx-util": "^0.4.8",
|
|
54
54
|
"ramda": "^0.29.0"
|
|
55
55
|
},
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "24e2a2f4b050fbb3a3b9f5deeee97f98985913e4"
|
|
57
57
|
}
|
package/src/app-hub.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { RuntimeError } from '@ibiz-template/core';
|
|
|
3
3
|
import { Application } from './application';
|
|
4
4
|
import { IAppHubService, ModelLoaderProvider } from './interface';
|
|
5
5
|
import { AppConfigService, Convert } from './hub';
|
|
6
|
+
import { HubController } from './controller';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* 运行时总集
|
|
@@ -22,6 +23,14 @@ export class AppHub implements IAppHubService {
|
|
|
22
23
|
*/
|
|
23
24
|
readonly convert: Convert = new Convert();
|
|
24
25
|
|
|
26
|
+
/**
|
|
27
|
+
* 全局控制器,放置全局性的功能性方法
|
|
28
|
+
*
|
|
29
|
+
* @author chitanda
|
|
30
|
+
* @date 2023-08-21 15:08:48
|
|
31
|
+
*/
|
|
32
|
+
readonly controller = new HubController();
|
|
33
|
+
|
|
25
34
|
/**
|
|
26
35
|
* 应用总集
|
|
27
36
|
*
|
|
@@ -100,7 +100,7 @@ export class OpenAppViewCommand {
|
|
|
100
100
|
context: IContext,
|
|
101
101
|
params: IParams = {},
|
|
102
102
|
): Promise<IModalData> {
|
|
103
|
-
return ibiz.openView.root(appView, context, params);
|
|
103
|
+
return ibiz.openView.root(appView.id, context, params);
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
/**
|
|
@@ -119,7 +119,7 @@ export class OpenAppViewCommand {
|
|
|
119
119
|
context: IContext,
|
|
120
120
|
params: IParams = {},
|
|
121
121
|
): Promise<IModalData> {
|
|
122
|
-
return ibiz.openView.modal(appView, context, params);
|
|
122
|
+
return ibiz.openView.modal(appView.id, context, params);
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
/**
|
|
@@ -142,7 +142,7 @@ export class OpenAppViewCommand {
|
|
|
142
142
|
if (!event) {
|
|
143
143
|
throw new RuntimeError('气泡打开缺少event');
|
|
144
144
|
}
|
|
145
|
-
return ibiz.openView.popover(appView, event, context, params);
|
|
145
|
+
return ibiz.openView.popover(appView.id, event, context, params);
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
/**
|
|
@@ -161,7 +161,7 @@ export class OpenAppViewCommand {
|
|
|
161
161
|
context: IContext,
|
|
162
162
|
params: IParams = {},
|
|
163
163
|
): Promise<IModalData> {
|
|
164
|
-
return ibiz.openView.drawer(appView, context, params);
|
|
164
|
+
return ibiz.openView.drawer(appView.id, context, params);
|
|
165
165
|
}
|
|
166
166
|
|
|
167
167
|
/**
|
|
@@ -180,6 +180,6 @@ export class OpenAppViewCommand {
|
|
|
180
180
|
context: IContext,
|
|
181
181
|
params: IParams = {},
|
|
182
182
|
): Promise<IModalData> {
|
|
183
|
-
return ibiz.openView.custom(appView, context, params);
|
|
183
|
+
return ibiz.openView.custom(appView.id, context, params);
|
|
184
184
|
}
|
|
185
185
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IControl, IViewLayoutPanel } from '@ibiz/model-core';
|
|
1
|
+
import { IControl, IControlLogic, IViewLayoutPanel } from '@ibiz/model-core';
|
|
2
2
|
import { BaseController } from '..';
|
|
3
3
|
import { CTX } from '../../ctx';
|
|
4
4
|
import {
|
|
@@ -129,14 +129,7 @@ export class ControlController<
|
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
// 部件逻辑初始化
|
|
132
|
-
|
|
133
|
-
this.scheduler = ibiz.scheduler.createControlScheduler(
|
|
134
|
-
this.model.controlLogics,
|
|
135
|
-
);
|
|
136
|
-
this.scheduler.defaultParamsCb = (): IUILogicParams => {
|
|
137
|
-
return this.getEventArgs();
|
|
138
|
-
};
|
|
139
|
-
}
|
|
132
|
+
this.initControlScheduler(this.model.controlLogics);
|
|
140
133
|
}
|
|
141
134
|
|
|
142
135
|
protected async onDestroyed(): Promise<void> {
|
|
@@ -225,4 +218,21 @@ export class ControlController<
|
|
|
225
218
|
});
|
|
226
219
|
}
|
|
227
220
|
}
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* 初始化部件逻辑调度器
|
|
224
|
+
* @author lxm
|
|
225
|
+
* @date 2023-08-21 11:53:37
|
|
226
|
+
* @param {IControlLogic[]} logics
|
|
227
|
+
* @return {*} {void}
|
|
228
|
+
*/
|
|
229
|
+
protected initControlScheduler(logics: IControlLogic[] = []): void {
|
|
230
|
+
if (logics.length === 0) {
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
this.scheduler = ibiz.scheduler.createControlScheduler(logics);
|
|
234
|
+
this.scheduler.defaultParamsCb = (): IUILogicParams => {
|
|
235
|
+
return this.getEventArgs();
|
|
236
|
+
};
|
|
237
|
+
}
|
|
228
238
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { createUUID, notNilEmpty } from 'qx-util';
|
|
3
3
|
import { IBizContext, RuntimeError } from '@ibiz-template/core';
|
|
4
4
|
import { IAppView } from '@ibiz/model-core';
|
|
5
|
+
import { isEmpty, isNil } from 'ramda';
|
|
5
6
|
import { LoadingState } from '../../utils/loading/loading.state';
|
|
6
7
|
import {
|
|
7
8
|
IViewController,
|
|
@@ -14,7 +15,7 @@ import {
|
|
|
14
15
|
IUILogicParams,
|
|
15
16
|
IViewEngine,
|
|
16
17
|
} from '../../../interface';
|
|
17
|
-
import { SysUIActionTag
|
|
18
|
+
import { SysUIActionTag } from '../../../constant';
|
|
18
19
|
import { convertNavData, Modal } from '../../../utils';
|
|
19
20
|
import { CTX } from '../../ctx';
|
|
20
21
|
import { ControllerEvent } from '../../utils';
|
|
@@ -45,6 +46,8 @@ export class ViewController<
|
|
|
45
46
|
extends BaseController<T, S, E>
|
|
46
47
|
implements IViewController<T, S, E>
|
|
47
48
|
{
|
|
49
|
+
session: IData = {};
|
|
50
|
+
|
|
48
51
|
modal: IModal = new Modal({});
|
|
49
52
|
|
|
50
53
|
protected get _evt(): ControllerEvent<IViewEvent> {
|
|
@@ -302,8 +305,11 @@ export class ViewController<
|
|
|
302
305
|
handleContextParams(): void {
|
|
303
306
|
this.context.srfappid = this.model.appId!;
|
|
304
307
|
|
|
305
|
-
//
|
|
306
|
-
if (
|
|
308
|
+
// 只要上下文中无 srfsessionid 则生成一个
|
|
309
|
+
if (
|
|
310
|
+
isNil(this.context.srfsessionid) ||
|
|
311
|
+
isEmpty(this.context.srfsessionid)
|
|
312
|
+
) {
|
|
307
313
|
this.context.srfsessionid = createUUID();
|
|
308
314
|
}
|
|
309
315
|
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { IHubController } from '../interface';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 应用级功能
|
|
5
|
+
*
|
|
6
|
+
* @author chitanda
|
|
7
|
+
* @date 2023-08-21 14:08:51
|
|
8
|
+
* @export
|
|
9
|
+
* @class AppController
|
|
10
|
+
* @implements {IHubController}
|
|
11
|
+
*/
|
|
12
|
+
export class HubController implements IHubController {
|
|
13
|
+
session: IData = {};
|
|
14
|
+
|
|
15
|
+
login(loginName: string, password: string): Promise<boolean> {
|
|
16
|
+
return ibiz.auth.login(loginName, password);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
logout(): Promise<boolean> {
|
|
20
|
+
return ibiz.auth.logout();
|
|
21
|
+
}
|
|
22
|
+
}
|
package/src/controller/index.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { Application } from '../../../application';
|
|
|
3
3
|
import { Convert } from '../../../hub';
|
|
4
4
|
import { ModelLoaderProvider } from '../../provider';
|
|
5
5
|
import { IAppConfigService } from '../i-app-config-service/i-app-config-service';
|
|
6
|
+
import { IHubController } from '../../controller';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* 应用 hub 服务
|
|
@@ -22,6 +23,15 @@ export interface IAppHubService {
|
|
|
22
23
|
*/
|
|
23
24
|
readonly convert: Convert;
|
|
24
25
|
|
|
26
|
+
/**
|
|
27
|
+
* 全局控制器,放置全局性的功能性方法
|
|
28
|
+
*
|
|
29
|
+
* @author chitanda
|
|
30
|
+
* @date 2023-08-21 15:08:00
|
|
31
|
+
* @type {IHubController}
|
|
32
|
+
*/
|
|
33
|
+
readonly controller: IHubController;
|
|
34
|
+
|
|
25
35
|
/**
|
|
26
36
|
* 默认应用首页视图
|
|
27
37
|
*
|
|
@@ -16,6 +16,14 @@ export interface IUIActionResult {
|
|
|
16
16
|
*/
|
|
17
17
|
refresh?: boolean;
|
|
18
18
|
|
|
19
|
+
/**
|
|
20
|
+
* 刷新引用视图模式
|
|
21
|
+
* @description 值模式 [界面行为重新加载数据模式] {0:无、 1:引用视图或树节点、 2:引用树节点父节点、 3:引用树节点根节点 }
|
|
22
|
+
* @type {( number | 0 | 1 | 2 | 3)}
|
|
23
|
+
* @default 0
|
|
24
|
+
*/
|
|
25
|
+
refreshMode?: number | 0 | 1 | 2 | 3;
|
|
26
|
+
|
|
19
27
|
/**
|
|
20
28
|
* 是否关闭界面
|
|
21
29
|
*
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 应用控制器
|
|
3
|
+
*
|
|
4
|
+
* @author chitanda
|
|
5
|
+
* @date 2023-08-21 14:08:41
|
|
6
|
+
* @export
|
|
7
|
+
* @interface IHubController
|
|
8
|
+
*/
|
|
9
|
+
export interface IHubController {
|
|
10
|
+
/**
|
|
11
|
+
* 全局共享数据对象
|
|
12
|
+
*
|
|
13
|
+
* @author chitanda
|
|
14
|
+
* @date 2023-08-21 14:08:01
|
|
15
|
+
* @type {IData}
|
|
16
|
+
*/
|
|
17
|
+
session: IData;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* 登录
|
|
21
|
+
*
|
|
22
|
+
* @author chitanda
|
|
23
|
+
* @date 2023-08-17 16:08:23
|
|
24
|
+
* @param {string} loginName
|
|
25
|
+
* @param {string} password
|
|
26
|
+
* @return {*} {Promise<boolean>}
|
|
27
|
+
*/
|
|
28
|
+
login(loginName: string, password: string): Promise<boolean>;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* 登出
|
|
32
|
+
*
|
|
33
|
+
* @author chitanda
|
|
34
|
+
* @date 2023-08-17 16:08:33
|
|
35
|
+
* @return {*} {Promise<boolean>}
|
|
36
|
+
*/
|
|
37
|
+
logout(): Promise<boolean>;
|
|
38
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { IDEContextMenu } from '@ibiz/model-core';
|
|
2
|
+
import { IContextMenuEvent } from '../../event';
|
|
3
|
+
import { IContextMenuState } from '../../state';
|
|
4
|
+
import { IToolbarController } from './i-toolbar.controller';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* 上下文菜单接口
|
|
8
|
+
* @author lxm
|
|
9
|
+
* @date 2023-08-21 10:43:51
|
|
10
|
+
* @export
|
|
11
|
+
* @interface IContextMenuController
|
|
12
|
+
* @extends {IToolbarController<IDEContextMenu, IContextMenuState, IContextMenuEvent>}
|
|
13
|
+
*/
|
|
14
|
+
export interface IContextMenuController
|
|
15
|
+
extends IToolbarController<
|
|
16
|
+
IDEContextMenu,
|
|
17
|
+
IContextMenuState,
|
|
18
|
+
IContextMenuEvent
|
|
19
|
+
> {}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IDEGrid } from '@ibiz/model-core';
|
|
2
2
|
import { ControlVO } from '../../../../service';
|
|
3
3
|
import { IGridEvent } from '../../event';
|
|
4
|
-
import { IGridState } from '../../state';
|
|
4
|
+
import { IGridRowState, IGridState } from '../../state';
|
|
5
5
|
import { IMDControlController } from './i-md-control.controller';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -57,4 +57,13 @@ export interface IGridController
|
|
|
57
57
|
* @memberof IGridController
|
|
58
58
|
*/
|
|
59
59
|
exportData(_args: { event: MouseEvent; params: IData }): Promise<void>;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* 值规则校验
|
|
63
|
+
*
|
|
64
|
+
* @author zzq
|
|
65
|
+
* @date 2023-08-23 18:23:26
|
|
66
|
+
* @memberof IGridController
|
|
67
|
+
*/
|
|
68
|
+
validate(row: IGridRowState): Promise<boolean>;
|
|
60
69
|
}
|
|
@@ -11,8 +11,11 @@ import { IControlController } from './i-control.controller';
|
|
|
11
11
|
* @interface IToolbarController
|
|
12
12
|
* @extends {IControlController}
|
|
13
13
|
*/
|
|
14
|
-
export interface IToolbarController
|
|
15
|
-
extends
|
|
14
|
+
export interface IToolbarController<
|
|
15
|
+
T extends IDEToolbar = IDEToolbar,
|
|
16
|
+
S extends IToolbarState = IToolbarState,
|
|
17
|
+
E extends IToolbarEvent = IToolbarEvent,
|
|
18
|
+
> extends IControlController<T, S, E> {
|
|
16
19
|
/**
|
|
17
20
|
* 根据数据计算工具栏权限和状态
|
|
18
21
|
* @author lxm
|
|
@@ -20,7 +23,7 @@ export interface IToolbarController
|
|
|
20
23
|
* @param {IData} [data] 实体数据
|
|
21
24
|
* @param {string} [appDeId] 实体标识
|
|
22
25
|
*/
|
|
23
|
-
calcButtonState(data?: IData, appDeId?: string): void
|
|
26
|
+
calcButtonState(data?: IData, appDeId?: string): Promise<void>;
|
|
24
27
|
|
|
25
28
|
/**
|
|
26
29
|
* 设置额外的按钮(可多次调用会累加)
|
|
@@ -46,10 +46,15 @@ export interface ITreeController
|
|
|
46
46
|
): Promise<void>;
|
|
47
47
|
|
|
48
48
|
/**
|
|
49
|
-
*
|
|
49
|
+
* 刷新指定树节点的子节点数据
|
|
50
50
|
* @author lxm
|
|
51
|
-
* @date 2023-08-
|
|
52
|
-
* @param {ITreeNodeData}
|
|
51
|
+
* @date 2023-08-23 08:23:59
|
|
52
|
+
* @param {(ITreeNodeData | IData)} nodeData 指定树节点数据,可以是节点数据,也可以是对应的实体数据
|
|
53
|
+
* @param {boolean} [refreshParent=false] 是否是刷新给定节点数据的父节点的子节点数据
|
|
54
|
+
* @return {*} {Promise<void>}
|
|
53
55
|
*/
|
|
54
|
-
|
|
56
|
+
refreshNodeChildren(
|
|
57
|
+
nodeData: ITreeNodeData | IData,
|
|
58
|
+
refreshParent?: boolean,
|
|
59
|
+
): Promise<void>;
|
|
55
60
|
}
|
|
@@ -29,6 +29,15 @@ export interface IViewController<
|
|
|
29
29
|
> extends IController<T, S, E> {
|
|
30
30
|
evt: ControllerEvent<E>;
|
|
31
31
|
|
|
32
|
+
/**
|
|
33
|
+
* 视图级共享数据对象
|
|
34
|
+
*
|
|
35
|
+
* @author chitanda
|
|
36
|
+
* @date 2023-08-21 15:08:52
|
|
37
|
+
* @type {IData}
|
|
38
|
+
*/
|
|
39
|
+
session: IData;
|
|
40
|
+
|
|
32
41
|
/**
|
|
33
42
|
* 视图呈现模式
|
|
34
43
|
* @author lxm
|
|
@@ -38,20 +38,4 @@ export interface IPickupViewPanelEvent extends IControlEvent {
|
|
|
38
38
|
event: EventBase;
|
|
39
39
|
emitArgs: { data: IData[] };
|
|
40
40
|
};
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* 选择视图初始化
|
|
44
|
-
*
|
|
45
|
-
* @author zk
|
|
46
|
-
* @date 2023-08-04 05:08:37
|
|
47
|
-
* @type {{
|
|
48
|
-
* event: EventBase;
|
|
49
|
-
* emitArgs: { data: IViewController };
|
|
50
|
-
* }}
|
|
51
|
-
* @memberof IPickupViewPanelEvent
|
|
52
|
-
*/
|
|
53
|
-
onPickUpViewMounted: {
|
|
54
|
-
event: EventBase;
|
|
55
|
-
emitArgs: undefined;
|
|
56
|
-
};
|
|
57
41
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { EventBase } from '../argument';
|
|
2
|
+
import { IMDViewEvent } from './i-md-view.event';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* 选择多数据视图事件
|
|
6
|
+
*
|
|
7
|
+
* @author zk
|
|
8
|
+
* @date 2023-08-21 05:08:15
|
|
9
|
+
* @export
|
|
10
|
+
* @interface IPickupMDViewEvent
|
|
11
|
+
* @extends {IMDViewEvent}
|
|
12
|
+
*/
|
|
13
|
+
export interface IPickupMDViewEvent extends IMDViewEvent {
|
|
14
|
+
/**
|
|
15
|
+
* 选中数据变更事件
|
|
16
|
+
*
|
|
17
|
+
* @author zk
|
|
18
|
+
* @date 2023-08-21 05:08:09
|
|
19
|
+
* @type {{
|
|
20
|
+
* event: EventBase;
|
|
21
|
+
* emitArgs: { data: IData[] };
|
|
22
|
+
* }}
|
|
23
|
+
* @memberof IPickupMDViewEvent
|
|
24
|
+
*/
|
|
25
|
+
onSelectionChange: {
|
|
26
|
+
event: EventBase;
|
|
27
|
+
emitArgs: { data: IData[] };
|
|
28
|
+
};
|
|
29
|
+
}
|
|
@@ -7,4 +7,13 @@ import { IExpBarControlState } from './i-exp-bar-control.state';
|
|
|
7
7
|
* @interface ITreeExpBarState
|
|
8
8
|
* @extends {IExpBarControlState}
|
|
9
9
|
*/
|
|
10
|
-
export interface ITreeExpBarState extends IExpBarControlState {
|
|
10
|
+
export interface ITreeExpBarState extends IExpBarControlState {
|
|
11
|
+
/**
|
|
12
|
+
* 不需要配置导航视图
|
|
13
|
+
* 没有配置导航视图的情况下也正常抛出导航事件,由外部决定导航参数用在哪个导航视图里。
|
|
14
|
+
* @author lxm
|
|
15
|
+
* @date 2023-08-22 03:39:14
|
|
16
|
+
* @type {boolean}
|
|
17
|
+
*/
|
|
18
|
+
noNeedNavView: boolean;
|
|
19
|
+
}
|