@ibiz-template/runtime 0.1.21 → 0.1.22
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 +902 -204
- package/dist/index.system.min.js +1 -1
- package/dist/index.system.min.js.map +1 -1
- package/out/constant/view-call-tag.d.ts +9 -1
- package/out/constant/view-call-tag.d.ts.map +1 -1
- package/out/constant/view-call-tag.js +8 -0
- package/out/controller/control/data-view/data-view.controller.d.ts +25 -2
- package/out/controller/control/data-view/data-view.controller.d.ts.map +1 -1
- package/out/controller/control/data-view/data-view.controller.js +70 -30
- package/out/controller/control/data-view/data-view.service.d.ts +1 -1
- package/out/controller/control/data-view/data-view.service.d.ts.map +1 -1
- package/out/controller/control/data-view/data-view.service.js +2 -1
- package/out/controller/control/form/edit-form/edit-form.service.d.ts.map +1 -1
- package/out/controller/control/form/edit-form/edit-form.service.js +1 -0
- package/out/controller/control/form/form-detail/form-druipart/form-druipart.controller.d.ts.map +1 -1
- package/out/controller/control/form/form-detail/form-druipart/form-druipart.controller.js +8 -4
- package/out/controller/control/grid/grid/grid.controller.d.ts.map +1 -1
- package/out/controller/control/grid/grid/grid.controller.js +1 -1
- package/out/controller/control/grid/grid/grid.service.d.ts.map +1 -1
- package/out/controller/control/grid/grid/grid.service.js +1 -0
- 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/kanban/index.d.ts +3 -0
- package/out/controller/control/kanban/index.d.ts.map +1 -0
- package/out/controller/control/kanban/index.js +2 -0
- package/out/controller/control/kanban/kanban.controller.d.ts +99 -0
- package/out/controller/control/kanban/kanban.controller.d.ts.map +1 -0
- package/out/controller/control/kanban/kanban.controller.js +310 -0
- package/out/controller/control/kanban/kanban.service.d.ts +24 -0
- package/out/controller/control/kanban/kanban.service.d.ts.map +1 -0
- package/out/controller/control/kanban/kanban.service.js +26 -0
- package/out/controller/control/list/list.controller.d.ts.map +1 -1
- package/out/controller/control/list/list.controller.js +3 -0
- package/out/controller/control/list/list.service.d.ts.map +1 -1
- package/out/controller/control/list/list.service.js +1 -0
- package/out/controller/control/md-ctrl/md-ctrl.service.d.ts.map +1 -1
- package/out/controller/control/md-ctrl/md-ctrl.service.js +1 -0
- package/out/controller/control/pickup-view-panel/pickup-view-panel.controller.d.ts.map +1 -1
- package/out/controller/control/pickup-view-panel/pickup-view-panel.controller.js +3 -2
- package/out/controller/control/toolbar/toolbar.controllerr.js +2 -2
- package/out/controller/ctx/ctx.d.ts +8 -0
- package/out/controller/ctx/ctx.d.ts.map +1 -1
- package/out/controller/ctx/ctx.js +12 -0
- package/out/de-logic/utils/handle-src-val.d.ts.map +1 -1
- package/out/de-logic/utils/handle-src-val.js +6 -4
- package/out/engine/view-base.engine.d.ts.map +1 -1
- package/out/engine/view-base.engine.js +2 -1
- package/out/interface/controller/controller/common/i-drag-change-info.d.ts +38 -0
- package/out/interface/controller/controller/common/i-drag-change-info.d.ts.map +1 -0
- package/out/interface/controller/controller/common/i-drag-change-info.js +1 -0
- package/out/interface/controller/controller/common/index.d.ts +1 -0
- package/out/interface/controller/controller/common/index.d.ts.map +1 -1
- package/out/interface/controller/controller/common/index.js +1 -0
- package/out/interface/controller/controller/control/i-data-view-control.controller.d.ts +1 -1
- package/out/interface/controller/controller/control/i-data-view-control.controller.d.ts.map +1 -1
- package/out/interface/controller/controller/control/i-kanban.controller.d.ts +14 -0
- package/out/interface/controller/controller/control/i-kanban.controller.d.ts.map +1 -0
- package/out/interface/controller/controller/control/i-kanban.controller.js +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/event/control/i-kanban.event.d.ts +3 -3
- package/out/interface/controller/event/control/i-kanban.event.d.ts.map +1 -1
- package/out/interface/controller/event/view/i-kanban-view.event.d.ts +1 -1
- package/out/interface/controller/state/control/i-kanban.state.d.ts +33 -0
- package/out/interface/controller/state/control/i-kanban.state.d.ts.map +1 -0
- package/out/interface/controller/state/control/i-kanban.state.js +1 -0
- package/out/interface/controller/state/control/i-md-control.state.d.ts +7 -0
- package/out/interface/controller/state/control/i-md-control.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-kanban-view.state.d.ts +11 -0
- package/out/interface/controller/state/view/i-kanban-view.state.d.ts.map +1 -0
- package/out/interface/controller/state/view/i-kanban-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/service/dto/method.dto.d.ts.map +1 -1
- package/out/service/dto/method.dto.js +1 -2
- package/out/service/service/entity/method/method.d.ts.map +1 -1
- package/out/service/service/entity/method/method.js +3 -1
- package/out/service/vo/control.vo.d.ts +1 -0
- package/out/service/vo/control.vo.d.ts.map +1 -1
- package/out/service/vo/control.vo.js +18 -5
- package/out/service/vo/ui-map-field.d.ts +8 -0
- package/out/service/vo/ui-map-field.d.ts.map +1 -1
- package/out/service/vo/ui-map-field.js +3 -0
- package/out/ui-logic/ui-logic-link/ui-logic-link-single-cond/ui-logic-link-single-cond.js +1 -1
- package/out/ui-logic/ui-logic-node/append-param-node/append-param-node.d.ts +17 -0
- package/out/ui-logic/ui-logic-node/append-param-node/append-param-node.d.ts.map +1 -0
- package/out/ui-logic/ui-logic-node/append-param-node/append-param-node.js +25 -0
- package/out/ui-logic/ui-logic-node/copy-param-node/copy-param-node.d.ts +17 -0
- package/out/ui-logic/ui-logic-node/copy-param-node/copy-param-node.d.ts.map +1 -0
- package/out/ui-logic/ui-logic-node/copy-param-node/copy-param-node.js +23 -0
- package/out/ui-logic/ui-logic-node/data-set-node/data-set-node.d.ts +17 -0
- package/out/ui-logic/ui-logic-node/data-set-node/data-set-node.d.ts.map +1 -0
- package/out/ui-logic/ui-logic-node/data-set-node/data-set-node.js +21 -0
- package/out/ui-logic/ui-logic-node/execute-de-logic-node/execute-de-logic-node.d.ts +17 -0
- package/out/ui-logic/ui-logic-node/execute-de-logic-node/execute-de-logic-node.d.ts.map +1 -0
- package/out/ui-logic/ui-logic-node/execute-de-logic-node/execute-de-logic-node.js +37 -0
- package/out/ui-logic/ui-logic-node/index.d.ts +9 -0
- package/out/ui-logic/ui-logic-node/index.d.ts.map +1 -1
- package/out/ui-logic/ui-logic-node/index.js +9 -0
- package/out/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.d.ts +56 -1
- package/out/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.d.ts.map +1 -1
- package/out/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.js +122 -12
- package/out/ui-logic/ui-logic-node/renew-param-node/renew-param-node.d.ts +17 -0
- package/out/ui-logic/ui-logic-node/renew-param-node/renew-param-node.d.ts.map +1 -0
- package/out/ui-logic/ui-logic-node/renew-param-node/renew-param-node.js +20 -0
- package/out/ui-logic/ui-logic-node/reset-param-node/reset-param-node.d.ts +17 -0
- package/out/ui-logic/ui-logic-node/reset-param-node/reset-param-node.d.ts.map +1 -0
- package/out/ui-logic/ui-logic-node/reset-param-node/reset-param-node.js +20 -0
- package/out/ui-logic/ui-logic-node/sort-param-node/sort-param-node.d.ts +17 -0
- package/out/ui-logic/ui-logic-node/sort-param-node/sort-param-node.d.ts.map +1 -0
- package/out/ui-logic/ui-logic-node/sort-param-node/sort-param-node.js +24 -0
- package/out/ui-logic/ui-logic-node/throw-exception-node/throw-exception-node.d.ts +17 -0
- package/out/ui-logic/ui-logic-node/throw-exception-node/throw-exception-node.d.ts.map +1 -0
- package/out/ui-logic/ui-logic-node/throw-exception-node/throw-exception-node.js +17 -0
- package/out/ui-logic/ui-logic-node/view-ctrl-fire-event-node/view-ctrl-fire-event-node.d.ts +16 -0
- package/out/ui-logic/ui-logic-node/view-ctrl-fire-event-node/view-ctrl-fire-event-node.d.ts.map +1 -0
- package/out/ui-logic/ui-logic-node/view-ctrl-fire-event-node/view-ctrl-fire-event-node.js +37 -0
- package/out/ui-logic/ui-logic-param/ui-logic-param.d.ts.map +1 -1
- package/out/ui-logic/ui-logic-param/ui-logic-param.js +2 -2
- package/out/ui-logic/ui-logic.d.ts.map +1 -1
- package/out/ui-logic/ui-logic.js +24 -6
- package/out/ui-logic/utils/handle-src-val.d.ts.map +1 -1
- package/out/ui-logic/utils/handle-src-val.js +7 -5
- package/out/utils/verify/de-rule-verify.js +1 -1
- package/package.json +5 -5
- package/src/constant/view-call-tag.ts +8 -0
- package/src/controller/control/data-view/data-view.controller.ts +93 -43
- package/src/controller/control/data-view/data-view.service.ts +5 -2
- package/src/controller/control/form/edit-form/edit-form.service.ts +1 -0
- package/src/controller/control/form/form-detail/form-druipart/form-druipart.controller.ts +10 -5
- package/src/controller/control/grid/grid/grid.controller.ts +1 -1
- package/src/controller/control/grid/grid/grid.service.ts +1 -0
- package/src/controller/control/index.ts +1 -0
- package/src/controller/control/kanban/index.ts +2 -0
- package/src/controller/control/kanban/kanban.controller.ts +370 -0
- package/src/controller/control/kanban/kanban.service.ts +33 -0
- package/src/controller/control/list/list.controller.ts +3 -0
- package/src/controller/control/list/list.service.ts +1 -0
- package/src/controller/control/md-ctrl/md-ctrl.service.ts +1 -0
- package/src/controller/control/pickup-view-panel/pickup-view-panel.controller.ts +3 -2
- package/src/controller/control/toolbar/toolbar.controllerr.ts +2 -2
- package/src/controller/ctx/ctx.ts +13 -0
- package/src/de-logic/utils/handle-src-val.ts +6 -4
- package/src/engine/view-base.engine.ts +2 -1
- package/src/interface/controller/controller/common/i-drag-change-info.ts +40 -0
- package/src/interface/controller/controller/common/index.ts +1 -0
- package/src/interface/controller/controller/control/i-data-view-control.controller.ts +5 -6
- package/src/interface/controller/controller/control/i-kanban.controller.ts +14 -0
- package/src/interface/controller/controller/control/index.ts +1 -0
- package/src/interface/controller/event/control/i-kanban.event.ts +3 -3
- package/src/interface/controller/event/view/i-kanban-view.event.ts +1 -1
- package/src/interface/controller/state/control/i-kanban.state.ts +35 -0
- package/src/interface/controller/state/control/i-md-control.state.ts +8 -0
- package/src/interface/controller/state/control/index.ts +1 -0
- package/src/interface/controller/state/view/i-kanban-view.state.ts +10 -0
- package/src/interface/controller/state/view/index.ts +1 -0
- package/src/service/dto/method.dto.ts +1 -2
- package/src/service/service/entity/method/method.ts +3 -1
- package/src/service/vo/control.vo.ts +19 -4
- package/src/service/vo/ui-map-field.ts +12 -0
- package/src/ui-logic/ui-logic-link/ui-logic-link-single-cond/ui-logic-link-single-cond.ts +1 -1
- package/src/ui-logic/ui-logic-node/append-param-node/append-param-node.ts +44 -0
- package/src/ui-logic/ui-logic-node/copy-param-node/copy-param-node.ts +31 -0
- package/src/ui-logic/ui-logic-node/data-set-node/data-set-node.ts +37 -0
- package/src/ui-logic/ui-logic-node/execute-de-logic-node/execute-de-logic-node.ts +57 -0
- package/src/ui-logic/ui-logic-node/index.ts +9 -0
- package/src/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.ts +153 -17
- package/src/ui-logic/ui-logic-node/renew-param-node/renew-param-node.ts +25 -0
- package/src/ui-logic/ui-logic-node/reset-param-node/reset-param-node.ts +25 -0
- package/src/ui-logic/ui-logic-node/sort-param-node/sort-param-node.ts +29 -0
- package/src/ui-logic/ui-logic-node/throw-exception-node/throw-exception-node.ts +23 -0
- package/src/ui-logic/ui-logic-node/view-ctrl-fire-event-node/view-ctrl-fire-event-node.ts +47 -0
- package/src/ui-logic/ui-logic-param/ui-logic-param.ts +2 -5
- package/src/ui-logic/ui-logic.ts +32 -5
- package/src/ui-logic/utils/handle-src-val.ts +7 -5
- package/src/utils/verify/de-rule-verify.ts +1 -1
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { IHttpResponse } from '@ibiz-template/core';
|
|
2
|
+
import { IDEKanban } from '@ibiz/model-core';
|
|
3
|
+
import { ControlVO } from '../../../service';
|
|
4
|
+
import { DataViewControlService } from '../data-view';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* 看板(kanban)部件服务
|
|
8
|
+
*
|
|
9
|
+
* @export
|
|
10
|
+
* @class DataViewControlService
|
|
11
|
+
* @extends {MDControlService<IDEDataView>}
|
|
12
|
+
*/
|
|
13
|
+
export class KanbanService extends DataViewControlService<IDEKanban> {
|
|
14
|
+
/**
|
|
15
|
+
* 更新分组数据
|
|
16
|
+
*
|
|
17
|
+
* @author lxm
|
|
18
|
+
* @date 2022-09-07 19:09:11
|
|
19
|
+
* @param {IParams} context 上下文
|
|
20
|
+
* @param {ControlVO} data 数据
|
|
21
|
+
* @returns {*}
|
|
22
|
+
*/
|
|
23
|
+
async updateGroup(
|
|
24
|
+
context: IParams,
|
|
25
|
+
data: ControlVO,
|
|
26
|
+
): Promise<IHttpResponse<ControlVO>> {
|
|
27
|
+
const updateAction =
|
|
28
|
+
this.model.updateGroupControlAction?.appDEMethodId || 'update';
|
|
29
|
+
let res = await this.exec(updateAction, context, data.getOrigin());
|
|
30
|
+
res = this.handleResponse(res);
|
|
31
|
+
return res as IHttpResponse<ControlVO>;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -181,6 +181,7 @@ export class ListController
|
|
|
181
181
|
childrenMap.forEach((value: IData[], key: string) => {
|
|
182
182
|
groups.push({
|
|
183
183
|
caption: key,
|
|
184
|
+
key,
|
|
184
185
|
children: [...value],
|
|
185
186
|
});
|
|
186
187
|
});
|
|
@@ -211,6 +212,7 @@ export class ListController
|
|
|
211
212
|
);
|
|
212
213
|
groups.push({
|
|
213
214
|
caption: codeListItem.text,
|
|
215
|
+
key: codeListItem.value,
|
|
214
216
|
children: [...value],
|
|
215
217
|
});
|
|
216
218
|
keys.push(codeListItem.value as string);
|
|
@@ -221,6 +223,7 @@ export class ListController
|
|
|
221
223
|
if (otherGroup.length > 0) {
|
|
222
224
|
groups.push({
|
|
223
225
|
caption: '其他',
|
|
226
|
+
key: '其他',
|
|
224
227
|
children: [...otherGroup],
|
|
225
228
|
});
|
|
226
229
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IAppDEGridView, IDEPickupViewPanel } from '@ibiz/model-core';
|
|
2
|
+
import { ViewCallTag } from '../../../constant';
|
|
2
3
|
import {
|
|
3
4
|
IPickupViewPanelState,
|
|
4
5
|
IPickupViewPanelEvent,
|
|
@@ -119,7 +120,7 @@ export class PickupViewPanelController
|
|
|
119
120
|
* @memberof PickupViewPanelController
|
|
120
121
|
*/
|
|
121
122
|
async getSelectedData(): Promise<IData[]> {
|
|
122
|
-
const items: IData[] = await this.embedView.call(
|
|
123
|
+
const items: IData[] = await this.embedView.call(ViewCallTag.GET_DATA);
|
|
123
124
|
return items;
|
|
124
125
|
}
|
|
125
126
|
|
|
@@ -132,7 +133,7 @@ export class PickupViewPanelController
|
|
|
132
133
|
* @memberof PickupViewPanelController
|
|
133
134
|
*/
|
|
134
135
|
async getAllData(): Promise<IData[]> {
|
|
135
|
-
const items: IData[] = await this.embedView.call(
|
|
136
|
+
const items: IData[] = await this.embedView.call(ViewCallTag.GET_ALL_DATA);
|
|
136
137
|
return items;
|
|
137
138
|
}
|
|
138
139
|
}
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
IDETBUIActionItem,
|
|
6
6
|
IControlLogic,
|
|
7
7
|
} from '@ibiz/model-core';
|
|
8
|
-
import { ViewMode } from '../../../constant';
|
|
8
|
+
import { ViewCallTag, ViewMode } from '../../../constant';
|
|
9
9
|
import {
|
|
10
10
|
IToolbarState,
|
|
11
11
|
IToolbarEvent,
|
|
@@ -69,7 +69,7 @@ export class ToolbarController<
|
|
|
69
69
|
// 执行界面行为
|
|
70
70
|
if (item.itemType === 'DEUIACTION') {
|
|
71
71
|
const actionId = (item as IDETBUIActionItem).uiactionId;
|
|
72
|
-
const res = await this.ctx.view.call(
|
|
72
|
+
const res = await this.ctx.view.call(ViewCallTag.GET_DATA);
|
|
73
73
|
const data = res || [];
|
|
74
74
|
const args = this.getEventArgs();
|
|
75
75
|
args.params = Object.assign(param, args.params);
|
|
@@ -42,6 +42,15 @@ export class CTX<V extends IViewController = IViewController> {
|
|
|
42
42
|
*/
|
|
43
43
|
view!: V;
|
|
44
44
|
|
|
45
|
+
/**
|
|
46
|
+
* 是否已经销毁
|
|
47
|
+
*
|
|
48
|
+
* @author chitanda
|
|
49
|
+
* @date 2023-09-11 11:09:57
|
|
50
|
+
* @protected
|
|
51
|
+
*/
|
|
52
|
+
protected isDestroyed = false;
|
|
53
|
+
|
|
45
54
|
/**
|
|
46
55
|
* CTX事件
|
|
47
56
|
* @author lxm
|
|
@@ -90,6 +99,7 @@ export class CTX<V extends IViewController = IViewController> {
|
|
|
90
99
|
this.controllersMap.clear();
|
|
91
100
|
this.view = null as any;
|
|
92
101
|
this.state = null as any;
|
|
102
|
+
this.isDestroyed = true;
|
|
93
103
|
}
|
|
94
104
|
|
|
95
105
|
/**
|
|
@@ -118,6 +128,9 @@ export class CTX<V extends IViewController = IViewController> {
|
|
|
118
128
|
* @date 2023-03-27 01:59:35
|
|
119
129
|
*/
|
|
120
130
|
endLoading(): void {
|
|
131
|
+
if (this.isDestroyed) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
121
134
|
this.view.endLoading();
|
|
122
135
|
}
|
|
123
136
|
|
|
@@ -56,12 +56,14 @@ export function handleSrcVal(
|
|
|
56
56
|
// 直接值
|
|
57
57
|
case 'SRCVALUE':
|
|
58
58
|
return srcValue;
|
|
59
|
-
//
|
|
60
|
-
case 'VIEWPARAM':
|
|
59
|
+
case 'WEBCONTEXT': // 网页请求上下文
|
|
60
|
+
case 'VIEWPARAM': // 视图参数
|
|
61
61
|
value = ctx.viewParams;
|
|
62
62
|
break;
|
|
63
|
-
//
|
|
64
|
-
case '
|
|
63
|
+
case 'APPLICATION': // 系统全局对象
|
|
64
|
+
case 'SESSION': // 用户全局对象
|
|
65
|
+
case 'APPDATA': // 应用上下文
|
|
66
|
+
case 'DATACONTEXT': // 数据上下文
|
|
65
67
|
value = ctx.context;
|
|
66
68
|
break;
|
|
67
69
|
// 当前环境参数
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { RuntimeError } from '@ibiz-template/core';
|
|
2
|
+
import { ViewCallTag } from '../constant';
|
|
2
3
|
import {
|
|
3
4
|
IViewController,
|
|
4
5
|
IToolbarController,
|
|
@@ -119,7 +120,7 @@ export class ViewEngineBase implements IViewEngine {
|
|
|
119
120
|
}
|
|
120
121
|
|
|
121
122
|
async call(key: string, _args?: IData): Promise<IData | null | undefined> {
|
|
122
|
-
if (key ===
|
|
123
|
+
if (key === ViewCallTag.GET_DATA) {
|
|
123
124
|
return this.getData();
|
|
124
125
|
}
|
|
125
126
|
return undefined;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 拖拽变更信息
|
|
3
|
+
* @author lxm
|
|
4
|
+
* @date 2023-08-30 04:23:41
|
|
5
|
+
* @export
|
|
6
|
+
* @interface IDragChangeInfo
|
|
7
|
+
*/
|
|
8
|
+
export interface IDragChangeInfo {
|
|
9
|
+
/**
|
|
10
|
+
* 变更前的分组标识
|
|
11
|
+
* @author lxm
|
|
12
|
+
* @date 2023-08-30 04:24:25
|
|
13
|
+
* @type {string}
|
|
14
|
+
*/
|
|
15
|
+
from: string | number;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* 变更后的分组标识
|
|
19
|
+
* @author lxm
|
|
20
|
+
* @date 2023-08-30 04:24:45
|
|
21
|
+
* @type {string}
|
|
22
|
+
*/
|
|
23
|
+
to: string | number;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* 变更前的索引位置
|
|
27
|
+
* @author lxm
|
|
28
|
+
* @date 2023-08-30 04:25:02
|
|
29
|
+
* @type {number}
|
|
30
|
+
*/
|
|
31
|
+
fromIndex: number;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* 变更后的索引位置
|
|
35
|
+
* @author lxm
|
|
36
|
+
* @date 2023-08-30 04:24:53
|
|
37
|
+
* @type {number}
|
|
38
|
+
*/
|
|
39
|
+
toIndex: number;
|
|
40
|
+
}
|
|
@@ -10,12 +10,11 @@ import { IMDControlController } from './i-md-control.controller';
|
|
|
10
10
|
* @interface IDataViewControlController
|
|
11
11
|
* @extends {IMDControlController<IDEDataView, IDataViewControlState, IDataViewControlEvent>}
|
|
12
12
|
*/
|
|
13
|
-
export interface IDataViewControlController
|
|
14
|
-
extends
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
> {
|
|
13
|
+
export interface IDataViewControlController<
|
|
14
|
+
T extends IDEDataView = IDEDataView,
|
|
15
|
+
S extends IDataViewControlState = IDataViewControlState,
|
|
16
|
+
E extends IDataViewControlEvent = IDataViewControlEvent,
|
|
17
|
+
> extends IMDControlController<T, S, E> {
|
|
19
18
|
/**
|
|
20
19
|
* 加载更多
|
|
21
20
|
*
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { IDEKanban } from '@ibiz/model-core';
|
|
2
|
+
import { IKanbanEvent } from '../../event';
|
|
3
|
+
import { IKanbanState } from '../../state';
|
|
4
|
+
import { IDataViewControlController } from './i-data-view-control.controller';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* 看板部件控制器
|
|
8
|
+
*
|
|
9
|
+
* @export
|
|
10
|
+
* @interface IDataViewControlController
|
|
11
|
+
* @extends {IMDControlController<IDEDataView, IDataViewControlState, IDataViewControlEvent>}
|
|
12
|
+
*/
|
|
13
|
+
export interface IKanbanController
|
|
14
|
+
extends IDataViewControlController<IDEKanban, IKanbanState, IKanbanEvent> {}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IDataViewControlEvent } from './i-data-view-control.event';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* 看板(kanban)部件事件
|
|
5
5
|
*
|
|
6
6
|
* @author lxm
|
|
7
7
|
* @date 2022-08-30 16:08:43
|
|
8
8
|
* @export
|
|
9
9
|
* @interface IMDControlEvent
|
|
10
10
|
*/
|
|
11
|
-
export type IKanbanEvent =
|
|
11
|
+
export type IKanbanEvent = IDataViewControlEvent;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { IButtonContainerState } from '../../common';
|
|
2
|
+
import { IDataViewControlState } from './i-data-view-control.state';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* 看板部件(kanban)部件状态
|
|
6
|
+
*
|
|
7
|
+
* @export
|
|
8
|
+
* @interface IDataViewControlState
|
|
9
|
+
* @extends {IMDControlState}
|
|
10
|
+
*/
|
|
11
|
+
export interface IKanbanState extends IDataViewControlState {
|
|
12
|
+
/**
|
|
13
|
+
* 可拖拽的
|
|
14
|
+
* @author lxm
|
|
15
|
+
* @date 2023-08-29 04:18:04
|
|
16
|
+
* @type {boolean}
|
|
17
|
+
*/
|
|
18
|
+
draggable: boolean;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* 是否正在更新
|
|
22
|
+
* @author lxm
|
|
23
|
+
* @date 2023-09-11 09:09:30
|
|
24
|
+
* @type {boolean}
|
|
25
|
+
*/
|
|
26
|
+
updating: boolean;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* 分组界面行为组状态
|
|
30
|
+
*
|
|
31
|
+
* @type {(IButtonContainerState)}
|
|
32
|
+
* @memberof PortletPartState
|
|
33
|
+
*/
|
|
34
|
+
groupActionGroupState?: IButtonContainerState;
|
|
35
|
+
}
|
|
@@ -106,4 +106,12 @@ export interface IMDControlGroupState {
|
|
|
106
106
|
* @memberof IMDControlGroupState
|
|
107
107
|
*/
|
|
108
108
|
caption: string;
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* 分组唯一标识(分组属性对应的值)
|
|
112
|
+
* @author lxm
|
|
113
|
+
* @date 2023-08-30 04:37:05
|
|
114
|
+
* @type {string}
|
|
115
|
+
*/
|
|
116
|
+
key: string | number;
|
|
109
117
|
}
|
|
@@ -36,4 +36,5 @@ export * from './i-panel-view.state';
|
|
|
36
36
|
export * from './i-calendar-view.state';
|
|
37
37
|
export * from './i-calendar-exp-view.state';
|
|
38
38
|
export * from './i-pickup-md-view.state';
|
|
39
|
+
export * from './i-kanban-view.state';
|
|
39
40
|
export * from './i-form-pickup-data-view.state';
|
|
@@ -5,7 +5,6 @@ import {
|
|
|
5
5
|
IAppDEMethodDTOField,
|
|
6
6
|
} from '@ibiz/model-core';
|
|
7
7
|
import { ModelError } from '@ibiz-template/core';
|
|
8
|
-
import { notNilEmpty } from 'qx-util';
|
|
9
8
|
import { Application } from '../../application';
|
|
10
9
|
import { AppDataEntity } from '../app-data-entity/app-data-entity';
|
|
11
10
|
import { findModelChild } from '../../model';
|
|
@@ -58,7 +57,7 @@ export class MethodDto {
|
|
|
58
57
|
break;
|
|
59
58
|
}
|
|
60
59
|
case 'DTOS': {
|
|
61
|
-
if (
|
|
60
|
+
if (data[key] !== undefined) {
|
|
62
61
|
break;
|
|
63
62
|
}
|
|
64
63
|
// 没有实体id的不处理
|
|
@@ -117,12 +117,14 @@ export abstract class Method {
|
|
|
117
117
|
case 'GET':
|
|
118
118
|
res = await this.app.net.get(`${path}/${methodName}`, data);
|
|
119
119
|
break;
|
|
120
|
-
case 'PUT':
|
|
120
|
+
case 'PUT': {
|
|
121
121
|
res = await this.app.net.put(
|
|
122
122
|
`${path}/${methodName}`,
|
|
123
123
|
notNilEmpty(data) ? data : params,
|
|
124
124
|
);
|
|
125
|
+
const entity = this.createEntity(data);
|
|
125
126
|
break;
|
|
127
|
+
}
|
|
126
128
|
case 'DELETE':
|
|
127
129
|
res = await this.app.net.delete(`${path}/${methodName}`, data);
|
|
128
130
|
break;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DataTypes } from '@ibiz-template/core';
|
|
1
2
|
import { clone, isNil } from 'ramda';
|
|
2
3
|
import { Srfuf } from '../constant';
|
|
3
4
|
import { UIMapField } from './ui-map-field';
|
|
@@ -141,7 +142,10 @@ export class ControlVO {
|
|
|
141
142
|
this.$dataUIMap.forEach((mapField, key) => {
|
|
142
143
|
const value = mapField.dataKey;
|
|
143
144
|
// 关联映射属性
|
|
144
|
-
|
|
145
|
+
const forceNumber =
|
|
146
|
+
mapField.dataType !== undefined &&
|
|
147
|
+
DataTypes.isNumber(mapField.dataType);
|
|
148
|
+
this.linkProperty(key, value, mapField.isOriginField, forceNumber);
|
|
145
149
|
});
|
|
146
150
|
|
|
147
151
|
// 映射属性里没有涉及到的建立直接关联,用于使用实体属性也要取到值的场景。
|
|
@@ -162,15 +166,17 @@ export class ControlVO {
|
|
|
162
166
|
* @param {string} uiKey 界面字段
|
|
163
167
|
* @param {string} dataKey 数据字段
|
|
164
168
|
* @param {boolean} [isOriginField=true] 是否是后台存储字段,是的话存取都在$origin里
|
|
169
|
+
* @param {boolean} [forceNumber=false] 是否强制转换成数值,是的话set的时候转成数值
|
|
165
170
|
* @returns {*}
|
|
166
171
|
*/
|
|
167
172
|
private linkProperty(
|
|
168
173
|
uiKey: string,
|
|
169
174
|
dataKey: string,
|
|
170
175
|
isOriginField: boolean = true,
|
|
176
|
+
forceNumber: boolean = false,
|
|
171
177
|
): void {
|
|
172
178
|
// srfuf和srfkey不做处理
|
|
173
|
-
if (uiKey === 'srfuf'
|
|
179
|
+
if (uiKey === 'srfuf') {
|
|
174
180
|
return;
|
|
175
181
|
}
|
|
176
182
|
|
|
@@ -183,10 +189,19 @@ export class ControlVO {
|
|
|
183
189
|
enumerable: true,
|
|
184
190
|
configurable: true,
|
|
185
191
|
get() {
|
|
186
|
-
|
|
192
|
+
// srfkey 视图id优先,拿不到实体属性则拿界面属性(前端id)
|
|
193
|
+
return uiKey === 'srfkey'
|
|
194
|
+
? this.$origin[dataKey] || this.$origin[uiKey]
|
|
195
|
+
: this.$origin[dataKey];
|
|
187
196
|
},
|
|
188
197
|
set(val) {
|
|
189
|
-
|
|
198
|
+
// 非空且强制转数值时,转换值的类型
|
|
199
|
+
let val2 = forceNumber && !isNil(val) ? Number(val) : val;
|
|
200
|
+
if (Number.isNaN(val2)) {
|
|
201
|
+
val2 = val; // NaN时还原值
|
|
202
|
+
ibiz.log.error(`${val}不能转换成数字`);
|
|
203
|
+
}
|
|
204
|
+
this.$origin[dataKey] = val2;
|
|
190
205
|
},
|
|
191
206
|
});
|
|
192
207
|
} else {
|
|
@@ -27,6 +27,14 @@ export class UIMapField {
|
|
|
27
27
|
*/
|
|
28
28
|
dataKey: string;
|
|
29
29
|
|
|
30
|
+
/**
|
|
31
|
+
* 数据类型
|
|
32
|
+
* @author lxm
|
|
33
|
+
* @date 2023-09-11 07:30:31
|
|
34
|
+
* @type {number}
|
|
35
|
+
*/
|
|
36
|
+
dataType?: number;
|
|
37
|
+
|
|
30
38
|
/**
|
|
31
39
|
* 是否存储到origin里面(默认false)
|
|
32
40
|
*
|
|
@@ -50,6 +58,7 @@ export class UIMapField {
|
|
|
50
58
|
dataKey: string,
|
|
51
59
|
opts: {
|
|
52
60
|
isOriginField?: boolean;
|
|
61
|
+
dataType?: number;
|
|
53
62
|
} = {},
|
|
54
63
|
) {
|
|
55
64
|
this.uiKey = uiKey;
|
|
@@ -57,5 +66,8 @@ export class UIMapField {
|
|
|
57
66
|
if (!isNil(opts.isOriginField)) {
|
|
58
67
|
this.isOriginField = opts.isOriginField;
|
|
59
68
|
}
|
|
69
|
+
if (!isNil(opts.dataType)) {
|
|
70
|
+
this.dataType = opts.dataType;
|
|
71
|
+
}
|
|
60
72
|
}
|
|
61
73
|
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { RuntimeModelError } from '@ibiz-template/core';
|
|
2
|
+
import { IDEUIAppendParamLogic } from '@ibiz/model-core';
|
|
3
|
+
import { UILogicContext } from '../../ui-logic-context';
|
|
4
|
+
import { handleSrcVal } from '../../utils';
|
|
5
|
+
import { UILogicNode } from '../ui-logic-node';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* 附加到数组参数
|
|
9
|
+
*
|
|
10
|
+
* @author lxm
|
|
11
|
+
* @date 2023-02-09 21:02:20
|
|
12
|
+
* @export
|
|
13
|
+
* @class AppendParamNode
|
|
14
|
+
* @extends {DELogicNode}
|
|
15
|
+
*/
|
|
16
|
+
export class AppendParamNode extends UILogicNode {
|
|
17
|
+
declare model: IDEUIAppendParamLogic;
|
|
18
|
+
|
|
19
|
+
async exec(ctx: UILogicContext): Promise<void> {
|
|
20
|
+
const {
|
|
21
|
+
dstDEUILogicParamId,
|
|
22
|
+
srcDEUILogicParamId,
|
|
23
|
+
dstIndex,
|
|
24
|
+
srcIndex,
|
|
25
|
+
srcSize,
|
|
26
|
+
} = this.model;
|
|
27
|
+
if (!dstDEUILogicParamId || !srcDEUILogicParamId) {
|
|
28
|
+
throw new RuntimeModelError(
|
|
29
|
+
this.model,
|
|
30
|
+
'缺少目标参数对象或者源参数对象配置',
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
const srcVal = handleSrcVal(ctx, this.model) as IData[];
|
|
34
|
+
const insertIndex = dstIndex || 0;
|
|
35
|
+
const _srcIndex = srcIndex || 0;
|
|
36
|
+
const _srcSize = srcSize || srcVal.length;
|
|
37
|
+
|
|
38
|
+
ctx.params[dstDEUILogicParamId].splice(
|
|
39
|
+
insertIndex,
|
|
40
|
+
0,
|
|
41
|
+
...srcVal.slice(_srcIndex, _srcSize),
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { RuntimeModelError } from '@ibiz-template/core';
|
|
2
|
+
import { IDEUICopyParamLogic } from '@ibiz/model-core';
|
|
3
|
+
import { clone } from 'ramda';
|
|
4
|
+
import { UILogicContext } from '../../ui-logic-context';
|
|
5
|
+
import { handleSrcVal } from '../../utils';
|
|
6
|
+
import { UILogicNode } from '../ui-logic-node';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* 拷贝参数
|
|
10
|
+
*
|
|
11
|
+
* @author lxm
|
|
12
|
+
* @date 2023-02-09 21:02:20
|
|
13
|
+
* @export
|
|
14
|
+
* @class CopyParamNode
|
|
15
|
+
* @extends {UILogicNode}
|
|
16
|
+
*/
|
|
17
|
+
export class CopyParamNode extends UILogicNode {
|
|
18
|
+
declare model: IDEUICopyParamLogic;
|
|
19
|
+
|
|
20
|
+
async exec(ctx: UILogicContext): Promise<void> {
|
|
21
|
+
const { dstDEUILogicParamId, srcDEUILogicParamId } = this.model;
|
|
22
|
+
if (!dstDEUILogicParamId || !srcDEUILogicParamId) {
|
|
23
|
+
throw new RuntimeModelError(
|
|
24
|
+
this.model,
|
|
25
|
+
'缺少目标参数对象或者源参数对象配置',
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
const srcVal = handleSrcVal(ctx, this.model);
|
|
29
|
+
ctx.params[dstDEUILogicParamId] = clone(srcVal);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { IDEUIDEDataSetLogic } from '@ibiz/model-core';
|
|
2
|
+
import { UILogicContext } from '../../ui-logic-context';
|
|
3
|
+
import { UILogicNode } from '../ui-logic-node';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* 数据集合节点
|
|
7
|
+
*
|
|
8
|
+
* @author lxm
|
|
9
|
+
* @date 2023-02-09 21:02:00
|
|
10
|
+
* @export
|
|
11
|
+
* @class DataSetNode
|
|
12
|
+
* @extends {UILogicNode}
|
|
13
|
+
*/
|
|
14
|
+
export class DataSetNode extends UILogicNode {
|
|
15
|
+
declare model: IDEUIDEDataSetLogic;
|
|
16
|
+
|
|
17
|
+
async exec(ctx: UILogicContext): Promise<void> {
|
|
18
|
+
const {
|
|
19
|
+
dstAppDEDataSetId,
|
|
20
|
+
dstAppDataEntityId,
|
|
21
|
+
dstDEUILogicParamId,
|
|
22
|
+
retDEUILogicParamId,
|
|
23
|
+
} = this.model;
|
|
24
|
+
const requestData = ctx.params[dstDEUILogicParamId!];
|
|
25
|
+
const app = ibiz.hub.getApp(ctx.context.srfappid);
|
|
26
|
+
const res = await app.deService.exec(
|
|
27
|
+
dstAppDataEntityId!,
|
|
28
|
+
dstAppDEDataSetId!,
|
|
29
|
+
ctx.context,
|
|
30
|
+
requestData,
|
|
31
|
+
ctx.viewParams,
|
|
32
|
+
);
|
|
33
|
+
if (res.ok) {
|
|
34
|
+
ctx.params[retDEUILogicParamId!] = res.data;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|