@ibiz-template/runtime 0.1.12-dev.0 → 0.1.12
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 +452 -311
- 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 +9 -0
- package/out/controller/control/app-menu/app-menu.controller.d.ts +1 -1
- package/out/controller/control/app-menu/app-menu.controller.d.ts.map +1 -1
- package/out/controller/control/app-menu/app-menu.controller.js +2 -2
- package/out/controller/control/caption-bar/caption-bar.controller.d.ts.map +1 -1
- package/out/controller/control/caption-bar/caption-bar.controller.js +1 -2
- package/out/controller/control/chart/generator/chart-options-generator.d.ts.map +1 -1
- package/out/controller/control/chart/generator/chart-options-generator.js +5 -0
- package/out/controller/control/exp-bar/exp-bar.controller.d.ts.map +1 -1
- package/out/controller/control/exp-bar/exp-bar.controller.js +19 -0
- package/out/controller/control/form/edit-form/edit-form.controller.d.ts +7 -0
- 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 +55 -19
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form-item.controller.d.ts +4 -2
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form-item.controller.d.ts.map +1 -1
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form-item.controller.js +22 -2
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form.controller.d.ts +3 -62
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form.controller.d.ts.map +1 -1
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form.controller.js +7 -97
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form-one/form-mdctrl-repeater-form-one.controller.d.ts +2 -48
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form-one/form-mdctrl-repeater-form-one.controller.d.ts.map +1 -1
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form-one/form-mdctrl-repeater-form-one.controller.js +2 -94
- package/out/controller/control/form/search-form/search-form.controller.js +1 -0
- package/out/controller/control/form/search-form/search-form.service.d.ts +1 -1
- package/out/controller/control/form/search-form/search-form.service.d.ts.map +1 -1
- package/out/controller/control/form/search-form/search-form.service.js +2 -3
- package/out/controller/control/grid/grid/grid-column.controller.d.ts +16 -0
- package/out/controller/control/grid/grid/grid-column.controller.d.ts.map +1 -1
- package/out/controller/control/grid/grid/grid-column.controller.js +22 -0
- package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.d.ts +8 -0
- package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.d.ts.map +1 -1
- package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.js +20 -1
- 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/md-ctrl/index.d.ts +4 -0
- package/out/controller/control/md-ctrl/index.d.ts.map +1 -0
- package/out/controller/control/md-ctrl/index.js +3 -0
- package/out/controller/control/md-ctrl/md-ctrl-row.state.d.ts +34 -0
- package/out/controller/control/md-ctrl/md-ctrl-row.state.d.ts.map +1 -0
- package/out/controller/control/md-ctrl/md-ctrl-row.state.js +31 -0
- package/out/controller/control/md-ctrl/md-ctrl.controller.d.ts +77 -0
- package/out/controller/control/md-ctrl/md-ctrl.controller.d.ts.map +1 -0
- package/out/controller/control/md-ctrl/md-ctrl.controller.js +160 -0
- package/out/controller/control/md-ctrl/md-ctrl.service.d.ts +21 -0
- package/out/controller/control/md-ctrl/md-ctrl.service.d.ts.map +1 -0
- package/out/controller/control/md-ctrl/md-ctrl.service.js +40 -0
- package/out/controller/control/panel/panel/panel-item.controller.js +1 -1
- package/out/controller/control/panel/panel/panel.controller.d.ts.map +1 -1
- package/out/controller/control/panel/panel/panel.controller.js +4 -2
- package/out/controller/control/search-bar/search-bar.controller.d.ts.map +1 -1
- package/out/controller/control/search-bar/search-bar.controller.js +15 -6
- package/out/engine/md-view.engine.d.ts.map +1 -1
- package/out/engine/md-view.engine.js +9 -3
- package/out/interface/controller/event/control/i-edit-form.event.d.ts +48 -3
- package/out/interface/controller/event/control/i-edit-form.event.d.ts.map +1 -1
- package/out/interface/controller/event/control/i-form.event.d.ts +27 -0
- package/out/interface/controller/event/control/i-form.event.d.ts.map +1 -1
- package/out/interface/controller/event/control/i-md-control.event.d.ts +57 -14
- package/out/interface/controller/event/control/i-md-control.event.d.ts.map +1 -1
- package/out/interface/controller/state/control/i-exp-bar-control.state.d.ts +7 -0
- package/out/interface/controller/state/control/i-exp-bar-control.state.d.ts.map +1 -1
- package/out/interface/controller/state/control/i-search-bar.state.d.ts +7 -0
- package/out/interface/controller/state/control/i-search-bar.state.d.ts.map +1 -1
- package/out/logic-scheduler/executor/app-ui-logic-executor.d.ts +3 -3
- package/out/logic-scheduler/executor/app-ui-logic-executor.d.ts.map +1 -1
- package/out/logic-scheduler/executor/app-ui-logic-executor.js +3 -3
- package/out/service/service/code-list/code-list.service.d.ts.map +1 -1
- package/out/service/service/code-list/code-list.service.js +1 -1
- package/out/service/utils/dynamic-code-list/dynamic-code-list.js +1 -1
- package/out/ui-action/uiaction-util.js +1 -1
- package/out/utils/script/script-function.d.ts.map +1 -1
- package/out/utils/script/script-function.js +3 -0
- package/package.json +3 -3
- package/src/controller/common/control/md-control.controller.ts +7 -0
- package/src/controller/control/app-menu/app-menu.controller.ts +6 -3
- package/src/controller/control/caption-bar/caption-bar.controller.ts +1 -2
- package/src/controller/control/chart/generator/chart-options-generator.ts +4 -0
- package/src/controller/control/exp-bar/exp-bar.controller.ts +25 -0
- package/src/controller/control/form/edit-form/edit-form.controller.ts +57 -24
- package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form-item.controller.ts +41 -4
- package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form/form-mdctrl-repeater-form.controller.ts +11 -159
- package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater-form-one/form-mdctrl-repeater-form-one.controller.ts +2 -140
- package/src/controller/control/form/search-form/search-form.controller.ts +1 -1
- package/src/controller/control/form/search-form/search-form.service.ts +2 -3
- package/src/controller/control/grid/grid/grid-column.controller.ts +22 -0
- package/src/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.ts +21 -1
- package/src/controller/control/index.ts +1 -0
- package/src/controller/control/md-ctrl/index.ts +3 -0
- package/src/controller/control/md-ctrl/md-ctrl-row.state.ts +40 -0
- package/src/controller/control/md-ctrl/md-ctrl.controller.ts +199 -0
- package/src/controller/control/md-ctrl/md-ctrl.service.ts +40 -0
- package/src/controller/control/panel/panel/panel-item.controller.ts +1 -1
- package/src/controller/control/panel/panel/panel.controller.ts +6 -2
- package/src/controller/control/search-bar/search-bar.controller.ts +21 -8
- package/src/engine/md-view.engine.ts +7 -3
- package/src/interface/controller/event/control/i-edit-form.event.ts +53 -3
- package/src/interface/controller/event/control/i-form.event.ts +30 -0
- package/src/interface/controller/event/control/i-md-control.event.ts +63 -15
- package/src/interface/controller/state/control/i-exp-bar-control.state.ts +8 -0
- package/src/interface/controller/state/control/i-search-bar.state.ts +8 -0
- package/src/logic-scheduler/executor/app-ui-logic-executor.ts +5 -5
- package/src/service/service/code-list/code-list.service.ts +1 -4
- package/src/service/utils/dynamic-code-list/dynamic-code-list.ts +1 -1
- package/src/ui-action/uiaction-util.ts +1 -1
- package/src/utils/script/script-function.ts +3 -0
|
@@ -72,7 +72,7 @@ export class AppUILogicExecutor extends LogicExecutor {
|
|
|
72
72
|
tempParams = convertNavData(navParams, params, context, data[0]);
|
|
73
73
|
}
|
|
74
74
|
// 打开视图
|
|
75
|
-
|
|
75
|
+
return ibiz.commands.execute(OpenAppViewCommand.TAG, openView, tempContext, tempParams, rest);
|
|
76
76
|
}
|
|
77
77
|
/**
|
|
78
78
|
* 执行应用预置界面逻辑newdata
|
|
@@ -95,7 +95,7 @@ export class AppUILogicExecutor extends LogicExecutor {
|
|
|
95
95
|
newViewRef = await this.getWizardNewViewRef(appUILogic, parameters);
|
|
96
96
|
if (!newViewRef) {
|
|
97
97
|
// 选择视图取消操作直接返回
|
|
98
|
-
return;
|
|
98
|
+
return { ok: false };
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
else if (enableBatchAdd) {
|
|
@@ -133,7 +133,7 @@ export class AppUILogicExecutor extends LogicExecutor {
|
|
|
133
133
|
tempParams = Object.assign(tempParams, _data.$origin);
|
|
134
134
|
}
|
|
135
135
|
// 打开视图
|
|
136
|
-
|
|
136
|
+
return ibiz.commands.execute(OpenAppViewCommand.TAG, newViewRef.refAppViewId, tempContext, tempParams, rest);
|
|
137
137
|
}
|
|
138
138
|
/**
|
|
139
139
|
* 获取向导新建视图引用
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-list.service.d.ts","sourceRoot":"","sources":["../../../../src/service/service/code-list/code-list.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;;;;GAOG;AACH,qBAAa,eAAe;IAoBd,SAAS,CAAC,QAAQ,EAAE,YAAY;IAnB5C;;;;;OAKG;IACH,SAAS,CAAC,YAAY,4BAAmC;IAEzD;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,oBAAoB,CAAC,CAChE;gBAEU,QAAQ,EAAE,YAAY;IAE5C;;;;;;;OAOG;IACH,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,EAAE;IAc3D;;;;;;;;OAQG;IACH,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAMzC;;;;;;;;OAQG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIlD;;;;;;;;;OASG;IACH,SAAS,CAAC,iBAAiB,CACzB,SAAS,EAAE,SAAS,EAAE,EACtB,aAAa,EAAE,OAAO,GACrB,QAAQ,CAAC,YAAY,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"code-list.service.d.ts","sourceRoot":"","sources":["../../../../src/service/service/code-list/code-list.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;;;;GAOG;AACH,qBAAa,eAAe;IAoBd,SAAS,CAAC,QAAQ,EAAE,YAAY;IAnB5C;;;;;OAKG;IACH,SAAS,CAAC,YAAY,4BAAmC;IAEzD;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,oBAAoB,CAAC,CAChE;gBAEU,QAAQ,EAAE,YAAY;IAE5C;;;;;;;OAOG;IACH,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,EAAE;IAc3D;;;;;;;;OAQG;IACH,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAMzC;;;;;;;;OAQG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIlD;;;;;;;;;OASG;IACH,SAAS,CAAC,iBAAiB,CACzB,SAAS,EAAE,SAAS,EAAE,EACtB,aAAa,EAAE,OAAO,GACrB,QAAQ,CAAC,YAAY,CAAC,EAAE;IAuB3B;;;;;;;;OAQG;cACa,kBAAkB,CAChC,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,OAAY,EACrB,MAAM,GAAE,OAAY,GACnB,OAAO,CAAC,YAAY,EAAE,CAAC;IAa1B;;;;;;;;;OASG;IACG,GAAG,CACP,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,EACjB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC;CAcpC"}
|
|
@@ -91,7 +91,7 @@ export class CodeListService {
|
|
|
91
91
|
// todo代码项其他属性,表单数据
|
|
92
92
|
let text = codeItem.text;
|
|
93
93
|
if (codeItem.textLanguageRes) {
|
|
94
|
-
text = ibiz.i18n.t(codeItem.textLanguageRes.lanResTag, codeItem.
|
|
94
|
+
text = ibiz.i18n.t(codeItem.textLanguageRes.lanResTag, codeItem.text);
|
|
95
95
|
}
|
|
96
96
|
const _codeItem = {
|
|
97
97
|
text,
|
|
@@ -88,7 +88,7 @@ export class DynamicCodeListCache {
|
|
|
88
88
|
if (this.isPredefined) {
|
|
89
89
|
// 特殊处理,避免预置代码表加载不全
|
|
90
90
|
if (!params.size) {
|
|
91
|
-
params.size
|
|
91
|
+
params = Object.assign(Object.assign({}, params), { size: 10000 });
|
|
92
92
|
}
|
|
93
93
|
const res = await app.net.get(`/dictionaries/codelist/${this.codeList.codeName}`, params);
|
|
94
94
|
return Object.freeze(res.data.items);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script-function.d.ts","sourceRoot":"","sources":["../../../src/utils/script/script-function.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAmB,MAAM,iBAAiB,CAAC;AASvE,qBAAa,cAAc;IACzB,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAE7B,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAM;IAEjC,SAAS,CAAC,OAAO,EAAE,mBAAmB,CAAC;gBAGrC,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,mBAAoC;IAW/C;;;;;;;;OAQG;IACH,SAAS,CAAC,UAAU,CAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,mBAAmB,GAC3B,MAAM;IAWT;;;;;;;OAOG;IACH,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI;IA4B5E;;;;;;;OAOG;IACH,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,GAAG,EAAE;IAuB7C;;;;;;;OAOG;IACH,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"script-function.d.ts","sourceRoot":"","sources":["../../../src/utils/script/script-function.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAmB,MAAM,iBAAiB,CAAC;AASvE,qBAAa,cAAc;IACzB,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAE7B,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAM;IAEjC,SAAS,CAAC,OAAO,EAAE,mBAAmB,CAAC;gBAGrC,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,mBAAoC;IAW/C;;;;;;;;OAQG;IACH,SAAS,CAAC,UAAU,CAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,mBAAmB,GAC3B,MAAM;IAWT;;;;;;;OAOG;IACH,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI;IA4B5E;;;;;;;OAOG;IACH,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,GAAG,EAAE;IAuB7C;;;;;;;OAOG;IACH,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IA4C9D;;;;;;OAMG;IACH,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;CAI/B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ibiz-template/runtime",
|
|
3
|
-
"version": "0.1.12
|
|
3
|
+
"version": "0.1.12",
|
|
4
4
|
"description": "控制器包",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "out/index.js",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"author": "chitanda",
|
|
30
30
|
"license": "MIT",
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@ibiz-template/core": "^0.1.12
|
|
32
|
+
"@ibiz-template/core": "^0.1.12",
|
|
33
33
|
"@ibiz/model-core": "^0.0.15",
|
|
34
34
|
"@types/path-browserify": "^1.0.0",
|
|
35
35
|
"@types/qs": "^6.9.7",
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
"qx-util": "^0.4.8",
|
|
56
56
|
"ramda": "^0.29.0"
|
|
57
57
|
},
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "980e348c7fa465d0a62e655991c1bb816fca100a"
|
|
59
59
|
}
|
|
@@ -157,6 +157,9 @@ export class MDControlController<
|
|
|
157
157
|
await this._evt.emit('onLoadSuccess', {
|
|
158
158
|
isInitialLoad,
|
|
159
159
|
});
|
|
160
|
+
} catch (error) {
|
|
161
|
+
await this._evt.emit('onLoadError', undefined);
|
|
162
|
+
throw error;
|
|
160
163
|
} finally {
|
|
161
164
|
await this.endLoading();
|
|
162
165
|
}
|
|
@@ -210,6 +213,7 @@ export class MDControlController<
|
|
|
210
213
|
}
|
|
211
214
|
}
|
|
212
215
|
|
|
216
|
+
await this._evt.emit('onBeforeRemove', undefined);
|
|
213
217
|
await this.startLoading();
|
|
214
218
|
let needRefresh = false;
|
|
215
219
|
try {
|
|
@@ -241,6 +245,9 @@ export class MDControlController<
|
|
|
241
245
|
if (needRefresh) {
|
|
242
246
|
this.refresh();
|
|
243
247
|
}
|
|
248
|
+
} catch (error) {
|
|
249
|
+
await this._evt.emit('onRemoveError', undefined);
|
|
250
|
+
throw error;
|
|
244
251
|
} finally {
|
|
245
252
|
await this.endLoading();
|
|
246
253
|
}
|
|
@@ -64,7 +64,11 @@ export class AppMenuController
|
|
|
64
64
|
* @param {string} id
|
|
65
65
|
* @return {*} {Promise<void>}
|
|
66
66
|
*/
|
|
67
|
-
async onClickMenuItem(
|
|
67
|
+
async onClickMenuItem(
|
|
68
|
+
id: string,
|
|
69
|
+
event?: MouseEvent,
|
|
70
|
+
useDepth: boolean = true,
|
|
71
|
+
): Promise<void> {
|
|
68
72
|
const menuItem = findRecursiveChild(this.model, id, {
|
|
69
73
|
compareField: 'id',
|
|
70
74
|
childrenFields: ['appMenuItems'],
|
|
@@ -83,8 +87,7 @@ export class AppMenuController
|
|
|
83
87
|
}
|
|
84
88
|
|
|
85
89
|
const tempContext = this.context.clone();
|
|
86
|
-
|
|
87
|
-
if (this.routeDepth) {
|
|
90
|
+
if (this.routeDepth && useDepth) {
|
|
88
91
|
Object.assign(tempContext, {
|
|
89
92
|
toRouteDepth: this.routeDepth + 1,
|
|
90
93
|
});
|
|
@@ -24,8 +24,7 @@ export class CaptionBarController
|
|
|
24
24
|
if (this.view.model.capLanguageRes) {
|
|
25
25
|
this.state.caption = ibiz.i18n.t(
|
|
26
26
|
this.view.model.capLanguageRes.lanResTag!,
|
|
27
|
-
this.view.model.
|
|
28
|
-
this.view.model.caption,
|
|
27
|
+
this.view.model.caption,
|
|
29
28
|
);
|
|
30
29
|
} else {
|
|
31
30
|
this.state.caption = this.view.model.caption!;
|
|
@@ -199,6 +199,10 @@ export class ChartOptionsGenerator {
|
|
|
199
199
|
const { showLegend, legendPos } = chartLegend;
|
|
200
200
|
const legendOption: EChartsOption['legend'] = {};
|
|
201
201
|
legendOption.show = showLegend;
|
|
202
|
+
// 图表单序列不应出图例
|
|
203
|
+
if (this.model.dechartSerieses?.length === 1) {
|
|
204
|
+
legendOption.show = false;
|
|
205
|
+
}
|
|
202
206
|
const position = legendPos?.toLowerCase();
|
|
203
207
|
if (position === 'left' || position === 'right') {
|
|
204
208
|
legendOption.left = position;
|
|
@@ -164,6 +164,31 @@ export class ExpBarControlController<
|
|
|
164
164
|
protected async onCreated(): Promise<void> {
|
|
165
165
|
await super.onCreated();
|
|
166
166
|
this.childNames.push(this.model.xdataControlName!);
|
|
167
|
+
const appDataEntity = await ibiz.hub.getAppDataEntity(
|
|
168
|
+
this.model.appDataEntityId!,
|
|
169
|
+
this.context.srfappid,
|
|
170
|
+
)!;
|
|
171
|
+
if (appDataEntity) {
|
|
172
|
+
const searchFields = appDataEntity.appDEFields?.filter(field => {
|
|
173
|
+
return field.enableQuickSearch;
|
|
174
|
+
});
|
|
175
|
+
const placeHolders: string[] = [];
|
|
176
|
+
searchFields?.forEach(searchField => {
|
|
177
|
+
if (searchField?.lnlanguageRes && searchField.lnlanguageRes.lanResTag) {
|
|
178
|
+
placeHolders.push(
|
|
179
|
+
ibiz.i18n.t(
|
|
180
|
+
searchField.lnlanguageRes.lanResTag,
|
|
181
|
+
searchField.logicName,
|
|
182
|
+
),
|
|
183
|
+
);
|
|
184
|
+
} else if (searchField?.logicName) {
|
|
185
|
+
placeHolders.push(searchField.logicName);
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
if (placeHolders.length > 0) {
|
|
189
|
+
this.state.placeHolder = placeHolders.join('、');
|
|
190
|
+
}
|
|
191
|
+
}
|
|
167
192
|
}
|
|
168
193
|
|
|
169
194
|
/**
|
|
@@ -59,6 +59,43 @@ export class EditFormController
|
|
|
59
59
|
}) as () => Promise<void>;
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
+
/**
|
|
63
|
+
* 加载草稿行为
|
|
64
|
+
* @author lxm
|
|
65
|
+
* @date 2023-08-25 02:45:11
|
|
66
|
+
* @return {*} {Promise<IData>}
|
|
67
|
+
*/
|
|
68
|
+
async loadDraft(): Promise<IData> {
|
|
69
|
+
const queryParams = { ...this.params };
|
|
70
|
+
// 新建默认值给到graft接口,接口会回来
|
|
71
|
+
const params = await this.getDraftParams(); // 新建默认值
|
|
72
|
+
Object.assign(queryParams, params);
|
|
73
|
+
|
|
74
|
+
let res;
|
|
75
|
+
try {
|
|
76
|
+
await this.startLoading();
|
|
77
|
+
await this.evt.emit('onBeforeLoadDraft', { params: queryParams });
|
|
78
|
+
res = await this.service.getDraft(this.context, queryParams);
|
|
79
|
+
} catch (error) {
|
|
80
|
+
await this.evt.emit('onLoadDraftError', undefined);
|
|
81
|
+
throw error;
|
|
82
|
+
} finally {
|
|
83
|
+
await this.endLoading();
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// !getDraft的时候不替换,进行合并,空值不覆盖
|
|
87
|
+
mergeInLeft(this.data, res.data);
|
|
88
|
+
|
|
89
|
+
// 处理后台导致的新建默认值丢失
|
|
90
|
+
mergeDefaultInLeft(this.data, params);
|
|
91
|
+
|
|
92
|
+
this.formStateNotify(FormNotifyState.DRAFT);
|
|
93
|
+
|
|
94
|
+
await this.evt.emit('onLoadDraftSuccess', undefined);
|
|
95
|
+
this.state.isLoaded = true;
|
|
96
|
+
return this.data;
|
|
97
|
+
}
|
|
98
|
+
|
|
62
99
|
/**
|
|
63
100
|
* 部件加载数据行为
|
|
64
101
|
*
|
|
@@ -70,42 +107,30 @@ export class EditFormController
|
|
|
70
107
|
this.context,
|
|
71
108
|
this.model.appDataEntityId!,
|
|
72
109
|
);
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
// 新建默认值给到graft接口,接口会回来
|
|
76
|
-
let params: IData = {};
|
|
110
|
+
// 加载草稿单独走一个方法
|
|
77
111
|
if (isLoadDraft) {
|
|
78
|
-
|
|
79
|
-
Object.assign(queryParams, params);
|
|
112
|
+
return this.loadDraft();
|
|
80
113
|
}
|
|
81
114
|
|
|
82
|
-
|
|
115
|
+
const queryParams = { ...this.params };
|
|
116
|
+
|
|
83
117
|
let res;
|
|
84
118
|
try {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
119
|
+
await this.startLoading();
|
|
120
|
+
await this.evt.emit('onBeforeLoad', undefined);
|
|
121
|
+
res = await this.service.get(this.context, queryParams);
|
|
122
|
+
} catch (error) {
|
|
123
|
+
await this.evt.emit('onLoadError', undefined);
|
|
124
|
+
throw error;
|
|
88
125
|
} finally {
|
|
89
126
|
await this.endLoading();
|
|
90
127
|
}
|
|
91
128
|
|
|
92
|
-
if (isLoadDraft) {
|
|
93
|
-
// !getDraft的时候不替换,进行合并,空值不覆盖
|
|
94
|
-
mergeInLeft(this.data, res.data);
|
|
95
|
-
} else {
|
|
96
|
-
this.state.data = res.data;
|
|
97
|
-
}
|
|
98
129
|
this.state.modified = false;
|
|
99
130
|
this.state.data = res.data;
|
|
100
|
-
|
|
101
|
-
this.formStateNotify(
|
|
102
|
-
isLoadDraft ? FormNotifyState.DRAFT : FormNotifyState.LOAD,
|
|
103
|
-
);
|
|
131
|
+
this.formStateNotify(FormNotifyState.LOAD);
|
|
104
132
|
|
|
105
|
-
await this.evt.emit(
|
|
106
|
-
isLoadDraft ? 'onLoadDraftSuccess' : 'onLoadSuccess',
|
|
107
|
-
undefined,
|
|
108
|
-
);
|
|
133
|
+
await this.evt.emit('onLoadSuccess', undefined);
|
|
109
134
|
this.state.isLoaded = true;
|
|
110
135
|
return this.data;
|
|
111
136
|
}
|
|
@@ -128,12 +153,16 @@ export class EditFormController
|
|
|
128
153
|
throw new RuntimeError('请检查表单填写!');
|
|
129
154
|
}
|
|
130
155
|
await this.startLoading();
|
|
156
|
+
await this.evt.emit('onBeforeSave', undefined);
|
|
131
157
|
let res;
|
|
132
158
|
try {
|
|
133
159
|
res =
|
|
134
160
|
this.data.srfuf === Srfuf.CREATE
|
|
135
161
|
? await this.service.create(this.context, this.data)
|
|
136
162
|
: await this.service.update(this.context, this.data);
|
|
163
|
+
} catch (error) {
|
|
164
|
+
await this.evt.emit('onSaveError', undefined);
|
|
165
|
+
throw error;
|
|
137
166
|
} finally {
|
|
138
167
|
await this.endLoading();
|
|
139
168
|
}
|
|
@@ -159,6 +188,7 @@ export class EditFormController
|
|
|
159
188
|
// 新建数据清空数据
|
|
160
189
|
let res: IHttpResponse | undefined;
|
|
161
190
|
let ok: boolean = false;
|
|
191
|
+
await this.evt.emit('onBeforeRemove', undefined);
|
|
162
192
|
// 新建的数据不用进行后台删除
|
|
163
193
|
if (this.data.srfuf === Srfuf.UPDATE) {
|
|
164
194
|
ok = await ibiz.modal.confirm({
|
|
@@ -172,6 +202,9 @@ export class EditFormController
|
|
|
172
202
|
await this.startLoading();
|
|
173
203
|
try {
|
|
174
204
|
res = await this.service.remove(this.context, this.params);
|
|
205
|
+
} catch (error) {
|
|
206
|
+
await this.evt.emit('onRemoveError', undefined);
|
|
207
|
+
throw error;
|
|
175
208
|
} finally {
|
|
176
209
|
await this.endLoading();
|
|
177
210
|
}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
import { IControl, IDEFormMDCtrl } from '@ibiz/model-core';
|
|
1
|
+
import { IControl, IDEFormDetail, IDEFormMDCtrl } from '@ibiz/model-core';
|
|
2
2
|
import { IFormController } from '../../../../../../../interface';
|
|
3
|
+
import { findChildFormDetails } from '../../../../../../../model';
|
|
4
|
+
import { getFormDetailProvider } from '../../../../../../../register';
|
|
3
5
|
import { CTX } from '../../../../../../ctx';
|
|
4
6
|
import { EditFormController } from '../../../../edit-form';
|
|
7
|
+
import { FormController } from '../../../../form';
|
|
8
|
+
import { FormGroupPanelController } from '../../../form-group-panel';
|
|
9
|
+
import { FormItemController } from '../../../form-item';
|
|
5
10
|
|
|
6
11
|
/**
|
|
7
12
|
* 表单多数据部件项控制器
|
|
@@ -28,9 +33,41 @@ export class FormMDCtrlItemController
|
|
|
28
33
|
this.state.isSimple = true;
|
|
29
34
|
}
|
|
30
35
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
36
|
+
protected async initDetailControllers(
|
|
37
|
+
details: IDEFormDetail[] = (this.model as IDEFormMDCtrl).deformDetails!,
|
|
38
|
+
form: FormController = this,
|
|
39
|
+
parent: FormGroupPanelController | undefined = undefined,
|
|
40
|
+
): Promise<void> {
|
|
41
|
+
await Promise.all(
|
|
42
|
+
details.map(async detail => {
|
|
43
|
+
// 生成表单成员控制器
|
|
44
|
+
const detailProvider = await getFormDetailProvider(detail);
|
|
45
|
+
if (!detailProvider) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
form.providers[detail.id!] = detailProvider;
|
|
49
|
+
const detailController = await detailProvider.createController(
|
|
50
|
+
detail,
|
|
51
|
+
form,
|
|
52
|
+
parent,
|
|
53
|
+
);
|
|
54
|
+
form.details[detail.id!] = detailController;
|
|
55
|
+
if (
|
|
56
|
+
detail.detailType === 'FORMITEM' ||
|
|
57
|
+
detail.detailType === 'MDCTRL'
|
|
58
|
+
) {
|
|
59
|
+
form.formItems.push(detailController as FormItemController);
|
|
60
|
+
}
|
|
61
|
+
// 有子成员的生成子控制器
|
|
62
|
+
const childDetails = findChildFormDetails(detail);
|
|
63
|
+
if (childDetails.length) {
|
|
64
|
+
await this.initDetailControllers(
|
|
65
|
+
childDetails,
|
|
66
|
+
form,
|
|
67
|
+
detailController as FormGroupPanelController,
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
}),
|
|
34
71
|
);
|
|
35
72
|
}
|
|
36
73
|
}
|
|
@@ -1,15 +1,5 @@
|
|
|
1
|
-
// import { useCtx } from '@ibiz-template/vue3-util';
|
|
2
|
-
import { IDEFormDetail } from '@ibiz/model-core';
|
|
3
|
-
// import { reactive } from 'vue';
|
|
4
|
-
import { FormController } from '../../../../form';
|
|
5
|
-
import { FormGroupPanelController } from '../../../form-group-panel';
|
|
6
1
|
import { FormMDCtrlContentTypeController } from '../../form-mdctrl-content-type.controller';
|
|
7
2
|
import { FormMDCtrlItemController } from './form-mdctrl-repeater-form-item.controller';
|
|
8
|
-
import { FormItemController } from '../../../form-item';
|
|
9
|
-
import { IFormDetailController } from '../../../../../../../interface';
|
|
10
|
-
import { findChildFormDetails } from '../../../../../../../model';
|
|
11
|
-
import { getFormDetailProvider } from '../../../../../../../register';
|
|
12
|
-
import { CTX } from '../../../../../../ctx';
|
|
13
3
|
|
|
14
4
|
/**
|
|
15
5
|
* 表单多数据部件表格类型控制器
|
|
@@ -22,108 +12,6 @@ import { CTX } from '../../../../../../ctx';
|
|
|
22
12
|
* @implements {IFormController}
|
|
23
13
|
*/
|
|
24
14
|
export class FormMDCtrlRepeaterFormController extends FormMDCtrlContentTypeController {
|
|
25
|
-
/**
|
|
26
|
-
* 表单项控制器的集合(二维数组)
|
|
27
|
-
*
|
|
28
|
-
* @author zk
|
|
29
|
-
* @date 2023-07-25 05:07:56
|
|
30
|
-
* @type {Array<Array<FormItemController>>}
|
|
31
|
-
* @memberof FormMDCtrlController
|
|
32
|
-
*/
|
|
33
|
-
formDetails: Array<
|
|
34
|
-
Array<{ name: string; detailType: string; c: IFormDetailController }>
|
|
35
|
-
> = [];
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* 表单ctx
|
|
39
|
-
*
|
|
40
|
-
* @author zk
|
|
41
|
-
* @date 2023-07-31 12:07:00
|
|
42
|
-
* @private
|
|
43
|
-
* @type {CTX}
|
|
44
|
-
* @memberof FormMDCtrlRepeaterFormController
|
|
45
|
-
*/
|
|
46
|
-
private formCtx!: CTX;
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* uiState
|
|
50
|
-
*
|
|
51
|
-
* @author zk
|
|
52
|
-
* @date 2023-07-31 12:07:07
|
|
53
|
-
* @type {{ isInit: boolean }}
|
|
54
|
-
* @memberof FormMDCtrlRepeaterFormController
|
|
55
|
-
*/
|
|
56
|
-
state: { isInit: boolean } = { isInit: false };
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* 初始化表单成员控制器
|
|
60
|
-
*
|
|
61
|
-
* @author lxm
|
|
62
|
-
* @date 2022-08-24 21:08:48
|
|
63
|
-
* @protected
|
|
64
|
-
*/
|
|
65
|
-
protected async initFormMDCtrlItemControllers(
|
|
66
|
-
details: IDEFormDetail[],
|
|
67
|
-
index: number,
|
|
68
|
-
form: FormController = this.parent.form,
|
|
69
|
-
data: IData = {},
|
|
70
|
-
parent: FormGroupPanelController | undefined = undefined,
|
|
71
|
-
): Promise<IData> {
|
|
72
|
-
const formData = data;
|
|
73
|
-
// const formData = reactive(data);
|
|
74
|
-
|
|
75
|
-
const formController = new FormMDCtrlItemController(
|
|
76
|
-
this.model,
|
|
77
|
-
this.parent.form.context,
|
|
78
|
-
this.parent.form.params,
|
|
79
|
-
this.formCtx,
|
|
80
|
-
formData,
|
|
81
|
-
);
|
|
82
|
-
await formController.onInit();
|
|
83
|
-
formController.evt.on('onFormDataChange', arg => {
|
|
84
|
-
if (arg.data.length > 0) {
|
|
85
|
-
this.onDataItemChange(arg.data[0], index);
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
formController.state.isLoaded = true;
|
|
90
|
-
await Promise.all(
|
|
91
|
-
details.map(async detail => {
|
|
92
|
-
// 生成表单成员控制器
|
|
93
|
-
const detailProvider = await getFormDetailProvider(detail);
|
|
94
|
-
if (!detailProvider) {
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
form.providers[detail.id!] = detailProvider;
|
|
98
|
-
const detailController = await detailProvider.createController(
|
|
99
|
-
detail,
|
|
100
|
-
formController,
|
|
101
|
-
parent,
|
|
102
|
-
);
|
|
103
|
-
if (!this.formDetails[index]) {
|
|
104
|
-
this.formDetails[index] = [];
|
|
105
|
-
}
|
|
106
|
-
this.formDetails[index].push({
|
|
107
|
-
name: detail.id!,
|
|
108
|
-
detailType: detail.detailType!,
|
|
109
|
-
c: detailController,
|
|
110
|
-
});
|
|
111
|
-
// 有子成员的生成子控制器
|
|
112
|
-
const childDetails = findChildFormDetails(detail);
|
|
113
|
-
if (childDetails.length) {
|
|
114
|
-
await this.initFormMDCtrlItemControllers(
|
|
115
|
-
childDetails,
|
|
116
|
-
index,
|
|
117
|
-
formController,
|
|
118
|
-
data,
|
|
119
|
-
detailController as FormGroupPanelController,
|
|
120
|
-
);
|
|
121
|
-
}
|
|
122
|
-
}),
|
|
123
|
-
);
|
|
124
|
-
return data;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
15
|
/**
|
|
128
16
|
* 数据插入
|
|
129
17
|
*
|
|
@@ -132,10 +20,7 @@ export class FormMDCtrlRepeaterFormController extends FormMDCtrlContentTypeContr
|
|
|
132
20
|
* @memberof FormMDCtrlRepeaterFormController
|
|
133
21
|
*/
|
|
134
22
|
async onDataInsert(): Promise<void> {
|
|
135
|
-
const data =
|
|
136
|
-
this.model.deformDetails!,
|
|
137
|
-
this.data.length,
|
|
138
|
-
);
|
|
23
|
+
const data = {};
|
|
139
24
|
super.onDataInsert(data);
|
|
140
25
|
}
|
|
141
26
|
|
|
@@ -152,41 +37,9 @@ export class FormMDCtrlRepeaterFormController extends FormMDCtrlContentTypeContr
|
|
|
152
37
|
return;
|
|
153
38
|
}
|
|
154
39
|
super.onDataRemove(index);
|
|
155
|
-
this.formDetails.splice(index, 1);
|
|
156
40
|
}
|
|
157
41
|
|
|
158
|
-
|
|
159
|
-
* 初始化formCtx
|
|
160
|
-
*
|
|
161
|
-
* @author zk
|
|
162
|
-
* @date 2023-07-29 05:07:21
|
|
163
|
-
* @memberof FormMDCtrlRepeaterFormController
|
|
164
|
-
*/
|
|
165
|
-
useFormMdCtrlCtx(): void {
|
|
166
|
-
// this.formCtx = useCtx();
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* 初始化数据
|
|
171
|
-
*
|
|
172
|
-
* @author zk
|
|
173
|
-
* @date 2023-07-31 12:07:37
|
|
174
|
-
* @memberof FormMDCtrlRepeaterFormController
|
|
175
|
-
*/
|
|
176
|
-
async initData(): Promise<void> {
|
|
177
|
-
super.initData();
|
|
178
|
-
await Promise.all(
|
|
179
|
-
this.data.map(async (item, index) => {
|
|
180
|
-
await this.initFormMDCtrlItemControllers(
|
|
181
|
-
this.model.deformDetails!,
|
|
182
|
-
index,
|
|
183
|
-
this.parent.form,
|
|
184
|
-
item,
|
|
185
|
-
);
|
|
186
|
-
}),
|
|
187
|
-
);
|
|
188
|
-
this.state.isInit = true;
|
|
189
|
-
}
|
|
42
|
+
formControllerArray: Array<FormMDCtrlItemController> = [];
|
|
190
43
|
|
|
191
44
|
/**
|
|
192
45
|
* 表单项值规则校验
|
|
@@ -196,18 +49,17 @@ export class FormMDCtrlRepeaterFormController extends FormMDCtrlContentTypeContr
|
|
|
196
49
|
* @memberof FormMDCtrlRepeaterFormController
|
|
197
50
|
*/
|
|
198
51
|
async validate(): Promise<boolean> {
|
|
199
|
-
const values: Promise<boolean>[] =
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
values.push(c.validate());
|
|
205
|
-
}
|
|
206
|
-
});
|
|
207
|
-
});
|
|
208
|
-
|
|
52
|
+
const values: Promise<boolean>[] = this.formControllerArray.map(
|
|
53
|
+
(c: FormMDCtrlItemController) => {
|
|
54
|
+
return c.validate();
|
|
55
|
+
},
|
|
56
|
+
);
|
|
209
57
|
const results = await Promise.all(values);
|
|
210
58
|
// 找不到value为false即全部是true
|
|
211
59
|
return results.findIndex(value => !value) === -1;
|
|
212
60
|
}
|
|
61
|
+
|
|
62
|
+
setFromController(c: FormMDCtrlItemController): void {
|
|
63
|
+
this.formControllerArray.push(c);
|
|
64
|
+
}
|
|
213
65
|
}
|