@ibiz-template/runtime 0.2.7 → 0.2.9
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 +912 -327
- package/dist/index.system.min.js +1 -1
- package/dist/index.system.min.js.map +1 -1
- package/out/controller/common/control/md-control.controller.d.ts.map +1 -1
- package/out/controller/common/control/md-control.controller.js +21 -22
- package/out/controller/control/form/edit-form/edit-form.controller.d.ts.map +1 -1
- package/out/controller/control/form/edit-form/edit-form.controller.js +6 -0
- package/out/controller/control/form/form-detail/form-detail/form-detail.controller.d.ts +11 -11
- 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 +22 -16
- package/out/controller/control/form/form-detail/form-group-panel/form-group-panel.controller.d.ts +1 -1
- package/out/controller/control/form/form-detail/form-group-panel/form-group-panel.controller.d.ts.map +1 -1
- package/out/controller/control/form/form-detail/form-group-panel/form-group-panel.controller.js +2 -2
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-content-type.controller.js +4 -2
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.controller.d.ts +20 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.controller.d.ts.map +1 -1
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.controller.js +57 -1
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.state.d.ts +1 -1
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.state.d.ts.map +1 -1
- package/out/controller/control/grid/grid/grid.controller.d.ts.map +1 -1
- package/out/controller/control/grid/grid/grid.controller.js +19 -36
- package/out/controller/control/index.d.ts +1 -0
- package/out/controller/control/index.d.ts.map +1 -1
- package/out/controller/control/index.js +1 -0
- package/out/controller/control/map/index.d.ts +3 -0
- package/out/controller/control/map/index.d.ts.map +1 -0
- package/out/controller/control/map/index.js +2 -0
- package/out/controller/control/map/map.controller.d.ts +45 -0
- package/out/controller/control/map/map.controller.d.ts.map +1 -0
- package/out/controller/control/map/map.controller.js +135 -0
- package/out/controller/control/map/map.service.d.ts +25 -0
- package/out/controller/control/map/map.service.d.ts.map +1 -0
- package/out/controller/control/map/map.service.js +55 -0
- package/out/controller/control/panel/panel/panel-item.controller.d.ts +3 -3
- package/out/controller/control/panel/panel/panel-item.controller.d.ts.map +1 -1
- package/out/controller/control/panel/panel/panel-item.controller.js +22 -16
- package/out/controller/control/panel/panel/panel.controller.d.ts.map +1 -1
- package/out/controller/control/panel/panel/panel.controller.js +4 -20
- package/out/controller/utils/data-file-util/data-file-util.d.ts +45 -0
- package/out/controller/utils/data-file-util/data-file-util.d.ts.map +1 -0
- package/out/controller/utils/data-file-util/data-file-util.js +121 -0
- package/out/controller/utils/index.d.ts +1 -0
- package/out/controller/utils/index.d.ts.map +1 -1
- package/out/controller/utils/index.js +1 -0
- package/out/global/global-util/global-util.d.ts +2 -2
- package/out/global/global-util/global-util.d.ts.map +1 -1
- package/out/interface/controller/controller/control/i-map.controller.d.ts +15 -0
- package/out/interface/controller/controller/control/i-map.controller.d.ts.map +1 -0
- 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/control/panel-item/i-panel-data-container.controller.d.ts +1 -1
- package/out/interface/controller/controller/control/panel-item/i-panel-data-container.controller.d.ts.map +1 -1
- package/out/interface/controller/event/control/i-map.event.d.ts +54 -0
- package/out/interface/controller/event/control/i-map.event.d.ts.map +1 -0
- package/out/interface/controller/event/control/i-map.event.js +1 -0
- 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/state/control/i-map.state.d.ts +132 -0
- package/out/interface/controller/state/control/i-map.state.d.ts.map +1 -0
- package/out/interface/controller/state/control/i-map.state.js +1 -0
- 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/index.d.ts +2 -1
- package/out/interface/index.d.ts.map +1 -1
- package/out/interface/index.js +2 -1
- package/out/interface/provider/i-ui-login-node.provider.d.ts +23 -0
- package/out/interface/provider/i-ui-login-node.provider.d.ts.map +1 -0
- package/out/interface/provider/i-ui-login-node.provider.js +1 -0
- package/out/interface/provider/index.d.ts +1 -0
- package/out/interface/provider/index.d.ts.map +1 -1
- package/out/interface/ui-login/i-ui-logic-context.d.ts +85 -0
- package/out/interface/ui-login/i-ui-logic-context.d.ts.map +1 -0
- package/out/interface/ui-login/i-ui-logic-context.js +1 -0
- package/out/interface/ui-login/index.d.ts +2 -0
- package/out/interface/ui-login/index.d.ts.map +1 -0
- package/out/interface/ui-login/index.js +1 -0
- package/out/interface/util/{i-export-excel/i-export-excel.d.ts → i-excel-util/i-excel-util.d.ts} +4 -4
- package/out/interface/util/i-excel-util/i-excel-util.d.ts.map +1 -0
- package/out/interface/util/i-excel-util/i-excel-util.js +1 -0
- package/out/interface/util/index.d.ts +1 -1
- package/out/interface/util/index.d.ts.map +1 -1
- package/out/model/panel/index.d.ts +1 -0
- package/out/model/panel/index.d.ts.map +1 -1
- package/out/model/panel/index.js +1 -0
- package/out/model/panel/panel-field.d.ts +11 -0
- package/out/model/panel/panel-field.d.ts.map +1 -0
- package/out/model/panel/panel-field.js +35 -0
- package/out/model/utils/util.d.ts +12 -1
- package/out/model/utils/util.d.ts.map +1 -1
- package/out/model/utils/util.js +18 -0
- package/out/register/helper/common-register.js +1 -1
- package/out/register/helper/index.d.ts +3 -2
- package/out/register/helper/index.d.ts.map +1 -1
- package/out/register/helper/index.js +3 -2
- package/out/register/helper/ui-logic-node-register.d.ts +25 -0
- package/out/register/helper/ui-logic-node-register.d.ts.map +1 -0
- package/out/register/helper/ui-logic-node-register.js +37 -0
- package/out/service/mqtt/mqtt.service.d.ts +2 -0
- package/out/service/mqtt/mqtt.service.d.ts.map +1 -1
- package/out/service/mqtt/mqtt.service.js +3 -0
- package/out/service/service/entity/method/de-action.d.ts.map +1 -1
- package/out/service/service/entity/method/de-action.js +3 -0
- package/out/service/service/entity/method/fetch.d.ts.map +1 -1
- package/out/service/service/entity/method/fetch.js +1 -1
- package/out/service/vo/index.d.ts +2 -0
- package/out/service/vo/index.d.ts.map +1 -1
- package/out/service/vo/index.js +2 -0
- package/out/service/vo/map-data/index.d.ts +2 -0
- package/out/service/vo/map-data/index.d.ts.map +1 -0
- package/out/service/vo/map-data/index.js +1 -0
- package/out/service/vo/map-data/map-data.d.ts +17 -0
- package/out/service/vo/map-data/map-data.d.ts.map +1 -0
- package/out/service/vo/map-data/map-data.js +87 -0
- package/out/service/vo/panel-data/index.d.ts +2 -0
- package/out/service/vo/panel-data/index.d.ts.map +1 -0
- package/out/service/vo/panel-data/index.js +1 -0
- package/out/service/vo/panel-data/panel-data.d.ts +21 -0
- package/out/service/vo/panel-data/panel-data.d.ts.map +1 -0
- package/out/service/vo/panel-data/panel-data.js +73 -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 +6 -2
- package/out/ui-logic/ui-logic-context.d.ts +7 -2
- package/out/ui-logic/ui-logic-context.d.ts.map +1 -1
- package/out/ui-logic/ui-logic-context.js +5 -0
- package/out/ui-logic/ui-logic-node/index.d.ts +1 -0
- package/out/ui-logic/ui-logic-node/index.d.ts.map +1 -1
- package/out/ui-logic/ui-logic-node/index.js +1 -0
- package/out/ui-logic/ui-logic-node/pf-plugin-node/pf-plugin-node.d.ts +17 -0
- package/out/ui-logic/ui-logic-node/pf-plugin-node/pf-plugin-node.d.ts.map +1 -0
- package/out/ui-logic/ui-logic-node/pf-plugin-node/pf-plugin-node.js +19 -0
- package/out/ui-logic/ui-logic.d.ts.map +1 -1
- package/out/ui-logic/ui-logic.js +3 -1
- package/out/utils/script/script-function.d.ts.map +1 -1
- package/out/utils/script/script-function.js +7 -1
- package/package.json +4 -4
- package/src/controller/common/control/md-control.controller.ts +29 -23
- package/src/controller/control/form/edit-form/edit-form.controller.ts +6 -0
- package/src/controller/control/form/form-detail/form-detail/form-detail.controller.ts +35 -25
- package/src/controller/control/form/form-detail/form-group-panel/form-group-panel.controller.ts +2 -2
- package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-content-type.controller.ts +2 -2
- package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl.controller.ts +66 -1
- package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl.state.ts +1 -1
- package/src/controller/control/grid/grid/grid.controller.ts +20 -36
- package/src/controller/control/index.ts +1 -0
- package/src/controller/control/map/index.ts +2 -0
- package/src/controller/control/map/map.controller.ts +163 -0
- package/src/controller/control/map/map.service.ts +79 -0
- package/src/controller/control/panel/panel/panel-item.controller.ts +27 -17
- package/src/controller/control/panel/panel/panel.controller.ts +4 -21
- package/src/controller/utils/data-file-util/data-file-util.ts +156 -0
- package/src/controller/utils/index.ts +1 -0
- package/src/global/global-util/global-util.ts +2 -2
- package/src/interface/controller/controller/control/i-map.controller.ts +15 -0
- package/src/interface/controller/controller/control/index.ts +1 -0
- package/src/interface/controller/controller/control/panel-item/i-panel-data-container.controller.ts +1 -1
- package/src/interface/controller/event/control/i-map.event.ts +48 -0
- package/src/interface/controller/event/control/index.ts +1 -0
- package/src/interface/controller/state/control/i-map.state.ts +148 -0
- package/src/interface/controller/state/control/index.ts +1 -0
- package/src/interface/index.ts +2 -1
- package/src/interface/provider/i-ui-login-node.provider.ts +23 -0
- package/src/interface/provider/index.ts +1 -0
- package/src/interface/ui-login/i-ui-logic-context.ts +95 -0
- package/src/interface/ui-login/index.ts +1 -0
- package/src/interface/util/{i-export-excel/i-export-excel.ts → i-excel-util/i-excel-util.ts} +3 -3
- package/src/interface/util/index.ts +1 -1
- package/src/model/panel/index.ts +1 -0
- package/src/model/panel/panel-field.ts +49 -0
- package/src/model/utils/util.ts +20 -0
- package/src/register/helper/common-register.ts +1 -1
- package/src/register/helper/index.ts +3 -2
- package/src/register/helper/ui-logic-node-register.ts +52 -0
- package/src/service/mqtt/mqtt.service.ts +3 -2
- package/src/service/service/entity/method/de-action.ts +4 -1
- package/src/service/service/entity/method/fetch.ts +7 -1
- package/src/service/vo/index.ts +2 -0
- package/src/service/vo/map-data/index.ts +1 -0
- package/src/service/vo/map-data/map-data.ts +123 -0
- package/src/service/vo/panel-data/index.ts +1 -0
- package/src/service/vo/panel-data/panel-data.ts +93 -0
- package/src/service/vo/tree-node-data/tree-data-set-node-data.ts +6 -2
- package/src/ui-logic/ui-logic-context.ts +7 -2
- package/src/ui-logic/ui-logic-node/index.ts +1 -0
- package/src/ui-logic/ui-logic-node/pf-plugin-node/pf-plugin-node.ts +24 -0
- package/src/ui-logic/ui-logic.ts +3 -0
- package/src/utils/script/script-function.ts +6 -1
- package/out/interface/util/i-export-excel/i-export-excel.d.ts.map +0 -1
- /package/out/interface/{util/i-export-excel/i-export-excel.js → controller/controller/control/i-map.controller.js} +0 -0
|
@@ -16,7 +16,13 @@ export class ScriptFunction {
|
|
|
16
16
|
this.calcArgKeys(argKeys, options);
|
|
17
17
|
const fn = new Function(...this.argKeys, code);
|
|
18
18
|
this.scriptFn = function callBack(...args) {
|
|
19
|
-
|
|
19
|
+
try {
|
|
20
|
+
return fn.apply({}, args);
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
console.log('报错脚本', code);
|
|
24
|
+
throw error;
|
|
25
|
+
}
|
|
20
26
|
};
|
|
21
27
|
}
|
|
22
28
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ibiz-template/runtime",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.9",
|
|
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.2.6",
|
|
33
|
-
"@ibiz/model-core": "^0.0.
|
|
33
|
+
"@ibiz/model-core": "^0.0.20",
|
|
34
34
|
"@types/path-browserify": "^1.0.0",
|
|
35
35
|
"@types/qs": "^6.9.8",
|
|
36
36
|
"@types/systemjs": "^6.13.3",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
49
|
"@ibiz-template/core": "^0.1.0",
|
|
50
|
-
"@ibiz/model-core": "^0.0.
|
|
50
|
+
"@ibiz/model-core": "^0.0.20",
|
|
51
51
|
"async-validator": "^4.2.5",
|
|
52
52
|
"dayjs": "^1.11.7",
|
|
53
53
|
"echarts": "^5.4.3",
|
|
@@ -59,5 +59,5 @@
|
|
|
59
59
|
"qx-util": "^0.4.8",
|
|
60
60
|
"ramda": "^0.29.0"
|
|
61
61
|
},
|
|
62
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "1502d43393de4cc75f670d0ba22d901e158e0c00"
|
|
63
63
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* eslint-disable max-classes-per-file */
|
|
2
2
|
import { isElementSame, RuntimeError } from '@ibiz-template/core';
|
|
3
|
-
import { IAppDataEntity, IMDControl } from '@ibiz/model-core';
|
|
3
|
+
import { IAppDataEntity, IAppDEDataImport, IMDControl } from '@ibiz/model-core';
|
|
4
|
+
import { debounce } from 'lodash-es';
|
|
4
5
|
import {
|
|
5
6
|
IMDControlController,
|
|
6
7
|
IMDControlEvent,
|
|
@@ -89,7 +90,12 @@ export class MDControlController<
|
|
|
89
90
|
this.dataEntity.appDEFields?.forEach(field => {
|
|
90
91
|
this.fieldIdNameMap.set(field.id!, field.name!);
|
|
91
92
|
});
|
|
92
|
-
|
|
93
|
+
|
|
94
|
+
const fn = this.onDataChange.bind(this);
|
|
95
|
+
this.onDataChange = debounce(msg => {
|
|
96
|
+
fn(msg);
|
|
97
|
+
}, 300);
|
|
98
|
+
|
|
93
99
|
ibiz.mc.command.change.on(this.onDataChange);
|
|
94
100
|
|
|
95
101
|
// 设置默认排序
|
|
@@ -422,27 +428,27 @@ export class MDControlController<
|
|
|
422
428
|
* @returns {*} {Promise<void>}
|
|
423
429
|
*/
|
|
424
430
|
async importData(): Promise<void> {
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
431
|
+
const { appDataEntityId, dedataImportId } = this.model;
|
|
432
|
+
const appDataEntity = await ibiz.hub.getAppDataEntity(appDataEntityId!);
|
|
433
|
+
const dataImport = appDataEntity.appDEDataImports?.find(
|
|
434
|
+
(importItem: IAppDEDataImport) => importItem.id === dedataImportId,
|
|
435
|
+
);
|
|
436
|
+
if (!dataImport) {
|
|
437
|
+
throw new RuntimeError('无导入模型!');
|
|
438
|
+
}
|
|
439
|
+
const modal = ibiz.overlay.createModal(
|
|
440
|
+
'DataImport',
|
|
441
|
+
{
|
|
442
|
+
dismiss: () => modal.dismiss(),
|
|
443
|
+
appDataEntity,
|
|
444
|
+
},
|
|
445
|
+
{
|
|
446
|
+
width: 'auto',
|
|
447
|
+
placement: 'center',
|
|
448
|
+
},
|
|
449
|
+
);
|
|
450
|
+
modal.present();
|
|
451
|
+
await modal.onWillDismiss();
|
|
446
452
|
}
|
|
447
453
|
|
|
448
454
|
/**
|
|
@@ -428,6 +428,9 @@ export class EditFormController
|
|
|
428
428
|
const { context, params } = this.handlerAbilityParams(args);
|
|
429
429
|
try {
|
|
430
430
|
await this.service.wfStart(context, params, this.data);
|
|
431
|
+
if (this.view.modal.mode === 'ROUTE') {
|
|
432
|
+
ibiz.mc.command.send(this.data.$origin, 'OBJECTUPDATED');
|
|
433
|
+
}
|
|
431
434
|
} catch (error) {
|
|
432
435
|
this.actionNotification('WFSTARTERROR', {
|
|
433
436
|
error: error as Error,
|
|
@@ -457,6 +460,9 @@ export class EditFormController
|
|
|
457
460
|
const { context, params } = this.handlerAbilityParams(args);
|
|
458
461
|
try {
|
|
459
462
|
await this.service.wfSubmit(context, params, this.data);
|
|
463
|
+
if (this.view.modal.mode === 'ROUTE') {
|
|
464
|
+
ibiz.mc.command.send(this.data.$origin, 'OBJECTUPDATED');
|
|
465
|
+
}
|
|
460
466
|
} catch (error) {
|
|
461
467
|
this.actionNotification('WFSUBMITERROR', {
|
|
462
468
|
error: error as Error,
|
|
@@ -82,6 +82,22 @@ export class FormDetailController<T extends IDEFormDetail = IDEFormDetail>
|
|
|
82
82
|
return [...this.state.class.label, ...this.state.class.labelDyna];
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
+
/**
|
|
86
|
+
* 动态逻辑结果
|
|
87
|
+
* @author lxm
|
|
88
|
+
* @date 2023-09-21 03:36:37
|
|
89
|
+
* @protected
|
|
90
|
+
*/
|
|
91
|
+
protected dynaLogicResult: {
|
|
92
|
+
visible?: boolean;
|
|
93
|
+
disabled?: boolean;
|
|
94
|
+
required?: boolean;
|
|
95
|
+
} = {
|
|
96
|
+
visible: undefined,
|
|
97
|
+
disabled: undefined,
|
|
98
|
+
required: undefined,
|
|
99
|
+
};
|
|
100
|
+
|
|
85
101
|
/**
|
|
86
102
|
* Creates an instance of FormDetailController.
|
|
87
103
|
* @author lxm
|
|
@@ -267,20 +283,22 @@ export class FormDetailController<T extends IDEFormDetail = IDEFormDetail>
|
|
|
267
283
|
* @param {IData} data
|
|
268
284
|
*/
|
|
269
285
|
calcDetailDisabled(data: IData): void {
|
|
270
|
-
let
|
|
286
|
+
let { disabled } = this.dynaLogicResult;
|
|
271
287
|
|
|
272
288
|
// 上层计算为启用时计算预定义项启用逻辑
|
|
273
|
-
if (
|
|
289
|
+
if (disabled !== true && this.form.scheduler) {
|
|
274
290
|
const itemEnable = this.form.scheduler.triggerItemEnable(this.model.id!, {
|
|
275
291
|
data: [data],
|
|
276
292
|
});
|
|
277
293
|
if (itemEnable !== undefined) {
|
|
278
|
-
|
|
294
|
+
disabled = !itemEnable;
|
|
279
295
|
}
|
|
280
296
|
}
|
|
281
297
|
|
|
282
|
-
//
|
|
283
|
-
|
|
298
|
+
// 有值的时候才会去修改state
|
|
299
|
+
if (disabled !== undefined) {
|
|
300
|
+
this.state.disabled = disabled;
|
|
301
|
+
}
|
|
284
302
|
}
|
|
285
303
|
|
|
286
304
|
/**
|
|
@@ -292,7 +310,7 @@ export class FormDetailController<T extends IDEFormDetail = IDEFormDetail>
|
|
|
292
310
|
let { visible } = this.dynaLogicResult;
|
|
293
311
|
|
|
294
312
|
// 上层计算为显示时计算预定义项显示逻辑
|
|
295
|
-
if (visible && this.form.scheduler) {
|
|
313
|
+
if (visible !== false && this.form.scheduler) {
|
|
296
314
|
const itemVIsible = this.form.scheduler.triggerItemVisible(
|
|
297
315
|
this.model.id!,
|
|
298
316
|
{
|
|
@@ -304,8 +322,10 @@ export class FormDetailController<T extends IDEFormDetail = IDEFormDetail>
|
|
|
304
322
|
}
|
|
305
323
|
}
|
|
306
324
|
|
|
307
|
-
//
|
|
308
|
-
|
|
325
|
+
// 有值的时候才会去修改state
|
|
326
|
+
if (visible !== undefined) {
|
|
327
|
+
this.state.visible = visible;
|
|
328
|
+
}
|
|
309
329
|
}
|
|
310
330
|
|
|
311
331
|
/**
|
|
@@ -314,10 +334,10 @@ export class FormDetailController<T extends IDEFormDetail = IDEFormDetail>
|
|
|
314
334
|
* @param {IData} data
|
|
315
335
|
*/
|
|
316
336
|
calcDetailRequired(data: IData): void {
|
|
317
|
-
let
|
|
337
|
+
let { required } = this.dynaLogicResult;
|
|
318
338
|
|
|
319
339
|
// 上层计算为启用时计算预定义项空输入逻辑
|
|
320
|
-
if (
|
|
340
|
+
if (required !== true && this.form.scheduler) {
|
|
321
341
|
const itemAllowEmpty = this.form.scheduler.triggerItemBlank(
|
|
322
342
|
this.model.id!,
|
|
323
343
|
{
|
|
@@ -325,23 +345,13 @@ export class FormDetailController<T extends IDEFormDetail = IDEFormDetail>
|
|
|
325
345
|
},
|
|
326
346
|
);
|
|
327
347
|
if (itemAllowEmpty !== undefined) {
|
|
328
|
-
|
|
348
|
+
required = !itemAllowEmpty;
|
|
329
349
|
}
|
|
330
350
|
}
|
|
331
351
|
|
|
332
|
-
//
|
|
333
|
-
|
|
352
|
+
// 有值的时候才会去修改state
|
|
353
|
+
if (required !== undefined) {
|
|
354
|
+
this.state.required = required;
|
|
355
|
+
}
|
|
334
356
|
}
|
|
335
|
-
|
|
336
|
-
/**
|
|
337
|
-
* 动态逻辑结果
|
|
338
|
-
* @author lxm
|
|
339
|
-
* @date 2023-09-21 03:36:37
|
|
340
|
-
* @protected
|
|
341
|
-
*/
|
|
342
|
-
protected dynaLogicResult = {
|
|
343
|
-
visible: true,
|
|
344
|
-
disabled: false,
|
|
345
|
-
required: false,
|
|
346
|
-
};
|
|
347
357
|
}
|
package/src/controller/control/form/form-detail/form-group-panel/form-group-panel.controller.ts
CHANGED
|
@@ -57,8 +57,8 @@ export class FormGroupPanelController<
|
|
|
57
57
|
await this.initActionStates();
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
async formStateNotify(
|
|
61
|
-
super.
|
|
60
|
+
async formStateNotify(state: FormNotifyState): Promise<void> {
|
|
61
|
+
super.formStateNotify(state);
|
|
62
62
|
// 只在加载后台数据之后,更新界面行为组状态
|
|
63
63
|
if (this.state.actionGroupState) {
|
|
64
64
|
this.state.actionGroupState.update(this.form.data.getOrigin());
|
package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-content-type.controller.ts
CHANGED
|
@@ -86,7 +86,7 @@ export class FormMDCtrlContentTypeController {
|
|
|
86
86
|
if (index < 0) {
|
|
87
87
|
return;
|
|
88
88
|
}
|
|
89
|
-
this.parent.state.contentCtrlData
|
|
89
|
+
this.parent.state.contentCtrlData?.splice(index, 1);
|
|
90
90
|
this.parent.setFormDataValue();
|
|
91
91
|
}
|
|
92
92
|
|
|
@@ -99,7 +99,7 @@ export class FormMDCtrlContentTypeController {
|
|
|
99
99
|
* @memberof FormMDCtrlContentTypeController
|
|
100
100
|
*/
|
|
101
101
|
onDataInsert(data?: IData): void {
|
|
102
|
-
this.parent.state.contentCtrlData
|
|
102
|
+
this.parent.state.contentCtrlData?.push(data || {});
|
|
103
103
|
this.parent.setFormDataValue();
|
|
104
104
|
}
|
|
105
105
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IDEFormMDCtrl } from '@ibiz/model-core';
|
|
2
|
+
import { clone } from 'ramda';
|
|
2
3
|
import { FormDetailController } from '../form-detail';
|
|
3
4
|
import { FormMDCtrlContentTypeController } from './form-mdctrl-content-type.controller';
|
|
4
5
|
import { FormMDCtrlDataViewController } from './form-mdctrl-data-view/form-mdctrl-data-view.controller';
|
|
@@ -33,6 +34,30 @@ export class FormMDCtrlController extends FormDetailController<IDEFormMDCtrl> {
|
|
|
33
34
|
|
|
34
35
|
declare form: EditFormController;
|
|
35
36
|
|
|
37
|
+
/**
|
|
38
|
+
* 是否显示添加按钮
|
|
39
|
+
*
|
|
40
|
+
* @memberof FormMDCtrlController
|
|
41
|
+
*/
|
|
42
|
+
get isCreate(): boolean {
|
|
43
|
+
if (this.model.buildInActions) {
|
|
44
|
+
return [1, 3, 5, 7].includes(this.model.buildInActions);
|
|
45
|
+
}
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* 是否显示删除按钮
|
|
51
|
+
*
|
|
52
|
+
* @memberof FormMDCtrlController
|
|
53
|
+
*/
|
|
54
|
+
get isDelete(): boolean {
|
|
55
|
+
if (this.model.buildInActions) {
|
|
56
|
+
return [4, 5, 6, 7].includes(this.model.buildInActions);
|
|
57
|
+
}
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
|
|
36
61
|
/**
|
|
37
62
|
* Creates an instance of FormMDCtrlController.
|
|
38
63
|
*
|
|
@@ -126,7 +151,7 @@ export class FormMDCtrlController extends FormDetailController<IDEFormMDCtrl> {
|
|
|
126
151
|
const name =
|
|
127
152
|
this.model.appDEFieldId || this.model.fieldName || this.model.id;
|
|
128
153
|
if (name) {
|
|
129
|
-
this.form.setDataValue(name, this.state.contentCtrlData);
|
|
154
|
+
this.form.setDataValue(name, clone(this.state.contentCtrlData));
|
|
130
155
|
}
|
|
131
156
|
}
|
|
132
157
|
|
|
@@ -151,4 +176,44 @@ export class FormMDCtrlController extends FormDetailController<IDEFormMDCtrl> {
|
|
|
151
176
|
setDefaultValue(): void {
|
|
152
177
|
// todo 设置默认值
|
|
153
178
|
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* 表单数据变更通知
|
|
182
|
+
*
|
|
183
|
+
* @author lxm
|
|
184
|
+
* @date 2022-09-20 18:09:56
|
|
185
|
+
* @param {string[]} names
|
|
186
|
+
*/
|
|
187
|
+
async dataChangeNotify(names: string[]): Promise<void> {
|
|
188
|
+
await super.dataChangeNotify(names);
|
|
189
|
+
const { resetItemNames } = this.model;
|
|
190
|
+
const mdctrlName =
|
|
191
|
+
this.model.appDEFieldId || this.model.fieldName || this.model.id!;
|
|
192
|
+
|
|
193
|
+
// 重置项,变更时自己的值置空
|
|
194
|
+
let isReset = false;
|
|
195
|
+
if (resetItemNames && resetItemNames.length > 0) {
|
|
196
|
+
resetItemNames.forEach((resetItemName: string) => {
|
|
197
|
+
if (names.includes(resetItemName)) {
|
|
198
|
+
isReset = true;
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
if (isReset) {
|
|
203
|
+
this.state.contentCtrlData = null;
|
|
204
|
+
this.setFormDataValue();
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
// 刚加载初始化时的值不校验,只校验自身值变更
|
|
208
|
+
if (names.includes(mdctrlName)) {
|
|
209
|
+
this.validate();
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// 有表单项更新,且是自身变更时,触发表单项更新
|
|
213
|
+
if (names.includes(mdctrlName) && this.model.deformItemUpdateId) {
|
|
214
|
+
await (this.form as EditFormController).updateFormItem(
|
|
215
|
+
this.model.deformItemUpdateId,
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
154
219
|
}
|
|
@@ -32,7 +32,7 @@ import { getGridColumnProvider } from '../../../../register';
|
|
|
32
32
|
import { ControlVO, Srfuf } from '../../../../service';
|
|
33
33
|
import { MDControlController } from '../../../common';
|
|
34
34
|
import { GridNotifyState } from '../../../constant';
|
|
35
|
-
import { getDefaultValue, isValueChange } from '../../../utils';
|
|
35
|
+
import { exportData, getDefaultValue, isValueChange } from '../../../utils';
|
|
36
36
|
import { handleAllSettled, ScriptFactory } from '../../../../utils';
|
|
37
37
|
|
|
38
38
|
/**
|
|
@@ -525,10 +525,6 @@ export class GridController
|
|
|
525
525
|
rowState.data = res.data;
|
|
526
526
|
rowState.modified = false;
|
|
527
527
|
|
|
528
|
-
this.actionNotification(`${isCreate ? 'CREATE' : 'UPDATE'}SUCCESS`, {
|
|
529
|
-
default: `${res.data.srfmajortext || ''}保存成功`,
|
|
530
|
-
data: res.data,
|
|
531
|
-
});
|
|
532
528
|
this.gridStateNotify(rowState, GridNotifyState.SAVE);
|
|
533
529
|
await this.evt.emit('onSaveSuccess', undefined);
|
|
534
530
|
}
|
|
@@ -922,28 +918,28 @@ export class GridController
|
|
|
922
918
|
this.fieldColumns;
|
|
923
919
|
// 数据格式化
|
|
924
920
|
const formatExcelData = (data: IData[]): IData[] => {
|
|
925
|
-
const codeListMap: Map<string, readonly CodeListItem[]> = new Map();
|
|
926
|
-
Object.keys(items).forEach((key: string) => {
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
});
|
|
921
|
+
// const codeListMap: Map<string, readonly CodeListItem[]> = new Map();
|
|
922
|
+
// Object.keys(items).forEach((key: string) => {
|
|
923
|
+
// if (items[key].codeList) {
|
|
924
|
+
// codeListMap.set(key, items[key].codeListItems!);
|
|
925
|
+
// }
|
|
926
|
+
// });
|
|
931
927
|
const cloneData = clone(
|
|
932
928
|
data.map(item => {
|
|
933
929
|
return item.getOrigin();
|
|
934
930
|
}),
|
|
935
931
|
);
|
|
936
|
-
cloneData.forEach(item => {
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
});
|
|
932
|
+
// cloneData.forEach(item => {
|
|
933
|
+
// const fields = Object.keys(item);
|
|
934
|
+
// fields.forEach((key: string) => {
|
|
935
|
+
// if (codeListMap.get(key)) {
|
|
936
|
+
// item[key] =
|
|
937
|
+
// codeListMap.get(key)!.find(_item => {
|
|
938
|
+
// return _item.value === item[key];
|
|
939
|
+
// })?.text || item[key];
|
|
940
|
+
// }
|
|
941
|
+
// });
|
|
942
|
+
// });
|
|
947
943
|
return cloneData;
|
|
948
944
|
};
|
|
949
945
|
const getExportData = async (): Promise<IData[]> => {
|
|
@@ -977,7 +973,7 @@ export class GridController
|
|
|
977
973
|
const formatArrayData = (
|
|
978
974
|
filterVal: string[],
|
|
979
975
|
tableData: IData[],
|
|
980
|
-
): IData[] => {
|
|
976
|
+
): IData[][] => {
|
|
981
977
|
return tableData.map(v => {
|
|
982
978
|
return filterVal.map(j => {
|
|
983
979
|
return v[j];
|
|
@@ -994,19 +990,7 @@ export class GridController
|
|
|
994
990
|
);
|
|
995
991
|
// 二维数组
|
|
996
992
|
const data = formatArrayData(filterVal, await getExportData());
|
|
997
|
-
|
|
998
|
-
throw new RuntimeError('ibiz.util.getExportExcel不存在');
|
|
999
|
-
}
|
|
1000
|
-
const exportExcel = await ibiz.util.getExportExcel();
|
|
1001
|
-
if (!exportExcel) {
|
|
1002
|
-
throw new RuntimeError('导出模块加载错误');
|
|
1003
|
-
}
|
|
1004
|
-
exportExcel.exportJsonToExcel({
|
|
1005
|
-
header, // 表头内容 数组格式
|
|
1006
|
-
data, // 具体数据 这是个二维数组
|
|
1007
|
-
filename: this.model.logicName!, // 文件名称
|
|
1008
|
-
autoWidth: true, // 单元格是否自适应
|
|
1009
|
-
});
|
|
993
|
+
await exportData(header, data, this.model.logicName!);
|
|
1010
994
|
}
|
|
1011
995
|
|
|
1012
996
|
/**
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { ISysMap } from '@ibiz/model-core';
|
|
2
|
+
import { MapService } from './map.service';
|
|
3
|
+
import {
|
|
4
|
+
IMapController,
|
|
5
|
+
IMapData,
|
|
6
|
+
IMapEvent,
|
|
7
|
+
IMapState,
|
|
8
|
+
MDCtrlLoadParams,
|
|
9
|
+
} from '../../../interface';
|
|
10
|
+
import { MDControlController } from '../../common';
|
|
11
|
+
|
|
12
|
+
export class MapController
|
|
13
|
+
extends MDControlController<ISysMap, IMapState, IMapEvent>
|
|
14
|
+
implements IMapController
|
|
15
|
+
{
|
|
16
|
+
declare service: MapService;
|
|
17
|
+
|
|
18
|
+
protected initState(): void {
|
|
19
|
+
super.initState();
|
|
20
|
+
this.state.size = 1000;
|
|
21
|
+
this.state.pointData = [];
|
|
22
|
+
this.state.areaData = [];
|
|
23
|
+
this.calcDefaultOptions();
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
protected async onCreated(): Promise<void> {
|
|
27
|
+
await super.onCreated();
|
|
28
|
+
this.service = new MapService(this.model);
|
|
29
|
+
await this.service.init(this.context);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* 部件加载数据行为
|
|
34
|
+
*
|
|
35
|
+
* @author lxm
|
|
36
|
+
* @date 2022-08-19 14:08:50
|
|
37
|
+
*/
|
|
38
|
+
async load(args: MDCtrlLoadParams = {}): Promise<IData[]> {
|
|
39
|
+
if (this.state.isSimple) {
|
|
40
|
+
return [];
|
|
41
|
+
}
|
|
42
|
+
await this.startLoading();
|
|
43
|
+
try {
|
|
44
|
+
// *初始加载需要重置分页
|
|
45
|
+
const isInitialLoad = args.isInitialLoad === true;
|
|
46
|
+
|
|
47
|
+
// *查询参数处理
|
|
48
|
+
const { context } = this.handlerAbilityParams(args);
|
|
49
|
+
const params = await this.getFetchParams(args?.viewParam);
|
|
50
|
+
context.srfareacode = this.state.areaCode;
|
|
51
|
+
|
|
52
|
+
const res = await this.service.fetchAll(context, params);
|
|
53
|
+
|
|
54
|
+
this.state.items = res.data;
|
|
55
|
+
|
|
56
|
+
await this.afterLoad(args, res.data);
|
|
57
|
+
|
|
58
|
+
this.state.isLoaded = true;
|
|
59
|
+
await this._evt.emit('onLoadSuccess', {
|
|
60
|
+
isInitialLoad,
|
|
61
|
+
});
|
|
62
|
+
} catch (error) {
|
|
63
|
+
await this._evt.emit('onLoadError', undefined);
|
|
64
|
+
this.actionNotification('FETCHERROR', {
|
|
65
|
+
error: error as Error,
|
|
66
|
+
});
|
|
67
|
+
throw error;
|
|
68
|
+
} finally {
|
|
69
|
+
await this.endLoading();
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
this.actionNotification('FETCHSUCCESS');
|
|
73
|
+
return this.state.items;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
async afterLoad(args: MDCtrlLoadParams, items: IData[]): Promise<IData[]> {
|
|
77
|
+
const result = (await super.afterLoad(args, items)) as IMapData[];
|
|
78
|
+
|
|
79
|
+
const tempareaData: IMapData[] = [];
|
|
80
|
+
const temppointData: IMapData[] = [];
|
|
81
|
+
result.forEach(item => {
|
|
82
|
+
if (item._type === 'area') {
|
|
83
|
+
tempareaData.push(item);
|
|
84
|
+
} else if (item._type === 'point') {
|
|
85
|
+
temppointData.push(item);
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
this.state.pointData = temppointData;
|
|
89
|
+
this.state.areaData = tempareaData;
|
|
90
|
+
|
|
91
|
+
return result;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* 计算默认选项
|
|
96
|
+
* @author lxm
|
|
97
|
+
* @date 2023-11-01 03:23:33
|
|
98
|
+
*/
|
|
99
|
+
calcDefaultOptions(): void {
|
|
100
|
+
this.state.strAreaCode = false;
|
|
101
|
+
this.state.defaultAreaCode = 100000;
|
|
102
|
+
|
|
103
|
+
if (this.model.controlParam?.ctrlParams) {
|
|
104
|
+
const { ctrlParams } = this.model.controlParam;
|
|
105
|
+
Object.keys(ctrlParams).forEach(key => {
|
|
106
|
+
const value = ctrlParams[key];
|
|
107
|
+
switch (key.toLowerCase()) {
|
|
108
|
+
case 'defaultareacode':
|
|
109
|
+
this.state.defaultAreaCode = value;
|
|
110
|
+
break;
|
|
111
|
+
case 'strareacode':
|
|
112
|
+
this.state.strAreaCode = value === 'true';
|
|
113
|
+
break;
|
|
114
|
+
case 'jsonbaseurl':
|
|
115
|
+
this.state.jsonBaseUrl = value;
|
|
116
|
+
break;
|
|
117
|
+
default:
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// 根据strAreaCode格式化默认区域代码的数值还是字符串
|
|
124
|
+
this.state.defaultAreaCode = this.state.strAreaCode
|
|
125
|
+
? `${this.state.defaultAreaCode}`
|
|
126
|
+
: Number(this.state.defaultAreaCode);
|
|
127
|
+
|
|
128
|
+
this.state.areaCode = this.state.defaultAreaCode;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* 地图变更事件处理
|
|
133
|
+
* @author lxm
|
|
134
|
+
* @date 2023-10-31 05:28:36
|
|
135
|
+
* @param {(string | number)} areaCode
|
|
136
|
+
*/
|
|
137
|
+
onMapChange(areaCode: string | number): void {
|
|
138
|
+
// 修改预置视图参数,然后加载
|
|
139
|
+
this.state.areaCode = areaCode;
|
|
140
|
+
this.load({});
|
|
141
|
+
this.evt.emit('onMapChange', { areaCode });
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* 地图区域点击事件处理
|
|
146
|
+
* @author lxm
|
|
147
|
+
* @date 2023-10-31 05:30:54
|
|
148
|
+
* @param {IMapData} mapData
|
|
149
|
+
*/
|
|
150
|
+
onAreaClick(mapData: IMapData): void {
|
|
151
|
+
this.evt.emit('onAreaClick', { data: [mapData] });
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* 地图散点点击事件处理
|
|
156
|
+
* @author lxm
|
|
157
|
+
* @date 2023-10-31 05:30:58
|
|
158
|
+
* @param {IMapData} mapData
|
|
159
|
+
*/
|
|
160
|
+
onPointClick(mapData: IMapData): void {
|
|
161
|
+
this.evt.emit('onPointClick', { data: [mapData] });
|
|
162
|
+
}
|
|
163
|
+
}
|