@ibiz-template/runtime 0.1.35 → 0.1.36
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 +363 -70
- package/dist/index.system.min.js +1 -1
- package/dist/index.system.min.js.map +1 -1
- package/out/constant/index.d.ts +1 -0
- package/out/constant/index.d.ts.map +1 -1
- package/out/constant/index.js +1 -0
- package/out/constant/value-op.d.ts +82 -0
- package/out/constant/value-op.d.ts.map +1 -0
- package/out/constant/value-op.js +83 -0
- package/out/controller/control/form/search-form/search-form.controller.d.ts +2 -2
- package/out/controller/control/form/search-form/search-form.controller.d.ts.map +1 -1
- package/out/controller/control/form/search-form/search-form.controller.js +11 -3
- package/out/controller/control/md-ctrl/md-ctrl.controller.d.ts +38 -3
- package/out/controller/control/md-ctrl/md-ctrl.controller.d.ts.map +1 -1
- package/out/controller/control/md-ctrl/md-ctrl.controller.js +110 -3
- package/out/controller/control/search-bar/search-bar-filter.controller.d.ts +65 -0
- package/out/controller/control/search-bar/search-bar-filter.controller.d.ts.map +1 -0
- package/out/controller/control/search-bar/search-bar-filter.controller.js +48 -0
- package/out/controller/control/search-bar/search-bar.controller.d.ts +63 -4
- package/out/controller/control/search-bar/search-bar.controller.d.ts.map +1 -1
- package/out/controller/control/search-bar/search-bar.controller.js +143 -9
- package/out/engine/md-view.engine.d.ts.map +1 -1
- package/out/engine/md-view.engine.js +2 -23
- package/out/interface/controller/controller/control/i-search-bar.controller.d.ts +8 -0
- package/out/interface/controller/controller/control/i-search-bar.controller.d.ts.map +1 -1
- package/out/interface/controller/controller/control/i-search-form.controller.d.ts +2 -2
- package/out/interface/controller/controller/control/i-search-form.controller.d.ts.map +1 -1
- package/out/interface/controller/state/control/i-search-bar.state.d.ts +75 -0
- package/out/interface/controller/state/control/i-search-bar.state.d.ts.map +1 -1
- package/out/service/service/entity/method/method.js +2 -2
- package/package.json +3 -3
- package/src/constant/index.ts +1 -0
- package/src/constant/value-op.ts +82 -0
- package/src/controller/control/form/search-form/search-form.controller.ts +11 -3
- package/src/controller/control/md-ctrl/md-ctrl.controller.ts +136 -3
- package/src/controller/control/search-bar/search-bar-filter.controller.ts +112 -0
- package/src/controller/control/search-bar/search-bar.controller.ts +165 -9
- package/src/engine/md-view.engine.ts +2 -27
- package/src/interface/controller/controller/control/i-search-bar.controller.ts +10 -1
- package/src/interface/controller/controller/control/i-search-form.controller.ts +2 -2
- package/src/interface/controller/state/control/i-search-bar.state.ts +86 -0
- package/src/service/service/entity/method/method.ts +2 -2
package/out/constant/index.d.ts
CHANGED
|
@@ -3,5 +3,6 @@ export { ViewType } from './view-type';
|
|
|
3
3
|
export { ViewMode } from './view-mode';
|
|
4
4
|
export { SysUIActionTag } from './sys-uiaction-tag';
|
|
5
5
|
export { ViewCallTag } from './view-call-tag';
|
|
6
|
+
export { ValueOP } from './value-op';
|
|
6
7
|
export * from './studio-event';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constant/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constant/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,cAAc,gBAAgB,CAAC"}
|
package/out/constant/index.js
CHANGED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 值操作
|
|
3
|
+
* @author lxm
|
|
4
|
+
* @date 2023-10-13 11:37:48
|
|
5
|
+
* @export
|
|
6
|
+
* @enum {number}
|
|
7
|
+
*/
|
|
8
|
+
export declare enum ValueOP {
|
|
9
|
+
/**
|
|
10
|
+
* 等于
|
|
11
|
+
*/
|
|
12
|
+
'EQ' = "EQ",
|
|
13
|
+
/**
|
|
14
|
+
* 不等于
|
|
15
|
+
*/
|
|
16
|
+
'NOT_EQ' = "NOTEQ",
|
|
17
|
+
/**
|
|
18
|
+
* 大于
|
|
19
|
+
*/
|
|
20
|
+
'GT' = "GT",
|
|
21
|
+
/**
|
|
22
|
+
* 大于等于
|
|
23
|
+
*/
|
|
24
|
+
'GT_AND_EQ' = "GTANDEQ",
|
|
25
|
+
/**
|
|
26
|
+
* 小于
|
|
27
|
+
*/
|
|
28
|
+
'LT' = "LT",
|
|
29
|
+
/**
|
|
30
|
+
* 小于等于
|
|
31
|
+
*/
|
|
32
|
+
'LT_AND_EQ' = "LTANDEQ",
|
|
33
|
+
/**
|
|
34
|
+
* 值为空
|
|
35
|
+
*/
|
|
36
|
+
'IS_NULL' = "ISNULL",
|
|
37
|
+
/**
|
|
38
|
+
* 值不为空
|
|
39
|
+
*/
|
|
40
|
+
'IS_NOT_NULL' = "ISNOTNULL",
|
|
41
|
+
/**
|
|
42
|
+
* 值在范围中
|
|
43
|
+
*/
|
|
44
|
+
'IN' = "IN",
|
|
45
|
+
/**
|
|
46
|
+
* 值不在范围中
|
|
47
|
+
*/
|
|
48
|
+
'NOT_IN' = "NOTIN",
|
|
49
|
+
/**
|
|
50
|
+
* 文本包含
|
|
51
|
+
*/
|
|
52
|
+
'LIKE' = "LIKE",
|
|
53
|
+
/**
|
|
54
|
+
* 文本左包含
|
|
55
|
+
*/
|
|
56
|
+
'LIFT_LIKE' = "LIFTLIKE",
|
|
57
|
+
/**
|
|
58
|
+
* 文本右包含
|
|
59
|
+
*/
|
|
60
|
+
'RIGHT_LIKE' = "RIGHT_LIKE",
|
|
61
|
+
/**
|
|
62
|
+
* 子数据(递归)
|
|
63
|
+
*/
|
|
64
|
+
'CHILD_OF' = "CHILDOF",
|
|
65
|
+
/**
|
|
66
|
+
* 自定义文本包含
|
|
67
|
+
*/
|
|
68
|
+
'USER_LIKE' = "USERLIKE",
|
|
69
|
+
/**
|
|
70
|
+
* 位与操作(BitAnd)(仅限整数形)
|
|
71
|
+
*/
|
|
72
|
+
'BIT_AND' = "BITAND",
|
|
73
|
+
/**
|
|
74
|
+
* 存在引用数据
|
|
75
|
+
*/
|
|
76
|
+
'EXISTS' = "EXISTS",
|
|
77
|
+
/**
|
|
78
|
+
* 不存在引用数据
|
|
79
|
+
*/
|
|
80
|
+
'NOT_EXISTS' = "NOTEXISTS"
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=value-op.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-op.d.ts","sourceRoot":"","sources":["../../src/constant/value-op.ts"],"names":[],"mappings":"AACA;;;;;;GAMG;AACH,oBAAY,OAAO;IACjB;;OAEG;IACH,IAAI,OAAO;IACX;;OAEG;IACH,QAAQ,UAAU;IAClB;;OAEG;IACH,IAAI,OAAO;IACX;;OAEG;IACH,WAAW,YAAY;IACvB;;OAEG;IACH,IAAI,OAAO;IACX;;OAEG;IACH,WAAW,YAAY;IACvB;;OAEG;IACH,SAAS,WAAW;IACpB;;OAEG;IACH,aAAa,cAAc;IAC3B;;OAEG;IACH,IAAI,OAAO;IACX;;OAEG;IACH,QAAQ,UAAU;IAClB;;OAEG;IACH,MAAM,SAAS;IACf;;OAEG;IACH,WAAW,aAAa;IACxB;;OAEG;IACH,YAAY,eAAe;IAC3B;;OAEG;IACH,UAAU,YAAY;IACtB;;OAEG;IACH,WAAW,aAAa;IACxB;;OAEG;IACH,SAAS,WAAW;IACpB;;OAEG;IACH,QAAQ,WAAW;IACnB;;OAEG;IACH,YAAY,cAAc;CAC3B"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/* eslint-disable no-shadow */
|
|
2
|
+
/**
|
|
3
|
+
* 值操作
|
|
4
|
+
* @author lxm
|
|
5
|
+
* @date 2023-10-13 11:37:48
|
|
6
|
+
* @export
|
|
7
|
+
* @enum {number}
|
|
8
|
+
*/
|
|
9
|
+
export var ValueOP;
|
|
10
|
+
(function (ValueOP) {
|
|
11
|
+
/**
|
|
12
|
+
* 等于
|
|
13
|
+
*/
|
|
14
|
+
ValueOP["EQ"] = "EQ";
|
|
15
|
+
/**
|
|
16
|
+
* 不等于
|
|
17
|
+
*/
|
|
18
|
+
ValueOP["NOT_EQ"] = "NOTEQ";
|
|
19
|
+
/**
|
|
20
|
+
* 大于
|
|
21
|
+
*/
|
|
22
|
+
ValueOP["GT"] = "GT";
|
|
23
|
+
/**
|
|
24
|
+
* 大于等于
|
|
25
|
+
*/
|
|
26
|
+
ValueOP["GT_AND_EQ"] = "GTANDEQ";
|
|
27
|
+
/**
|
|
28
|
+
* 小于
|
|
29
|
+
*/
|
|
30
|
+
ValueOP["LT"] = "LT";
|
|
31
|
+
/**
|
|
32
|
+
* 小于等于
|
|
33
|
+
*/
|
|
34
|
+
ValueOP["LT_AND_EQ"] = "LTANDEQ";
|
|
35
|
+
/**
|
|
36
|
+
* 值为空
|
|
37
|
+
*/
|
|
38
|
+
ValueOP["IS_NULL"] = "ISNULL";
|
|
39
|
+
/**
|
|
40
|
+
* 值不为空
|
|
41
|
+
*/
|
|
42
|
+
ValueOP["IS_NOT_NULL"] = "ISNOTNULL";
|
|
43
|
+
/**
|
|
44
|
+
* 值在范围中
|
|
45
|
+
*/
|
|
46
|
+
ValueOP["IN"] = "IN";
|
|
47
|
+
/**
|
|
48
|
+
* 值不在范围中
|
|
49
|
+
*/
|
|
50
|
+
ValueOP["NOT_IN"] = "NOTIN";
|
|
51
|
+
/**
|
|
52
|
+
* 文本包含
|
|
53
|
+
*/
|
|
54
|
+
ValueOP["LIKE"] = "LIKE";
|
|
55
|
+
/**
|
|
56
|
+
* 文本左包含
|
|
57
|
+
*/
|
|
58
|
+
ValueOP["LIFT_LIKE"] = "LIFTLIKE";
|
|
59
|
+
/**
|
|
60
|
+
* 文本右包含
|
|
61
|
+
*/
|
|
62
|
+
ValueOP["RIGHT_LIKE"] = "RIGHT_LIKE";
|
|
63
|
+
/**
|
|
64
|
+
* 子数据(递归)
|
|
65
|
+
*/
|
|
66
|
+
ValueOP["CHILD_OF"] = "CHILDOF";
|
|
67
|
+
/**
|
|
68
|
+
* 自定义文本包含
|
|
69
|
+
*/
|
|
70
|
+
ValueOP["USER_LIKE"] = "USERLIKE";
|
|
71
|
+
/**
|
|
72
|
+
* 位与操作(BitAnd)(仅限整数形)
|
|
73
|
+
*/
|
|
74
|
+
ValueOP["BIT_AND"] = "BITAND";
|
|
75
|
+
/**
|
|
76
|
+
* 存在引用数据
|
|
77
|
+
*/
|
|
78
|
+
ValueOP["EXISTS"] = "EXISTS";
|
|
79
|
+
/**
|
|
80
|
+
* 不存在引用数据
|
|
81
|
+
*/
|
|
82
|
+
ValueOP["NOT_EXISTS"] = "NOTEXISTS";
|
|
83
|
+
})(ValueOP || (ValueOP = {}));
|
|
@@ -32,13 +32,13 @@ export declare class SearchFormController extends FormController<IDESearchForm,
|
|
|
32
32
|
*/
|
|
33
33
|
load(): Promise<IData>;
|
|
34
34
|
/**
|
|
35
|
-
*
|
|
35
|
+
* 获取搜索表单的过滤参数
|
|
36
36
|
*
|
|
37
37
|
* @author lxm
|
|
38
38
|
* @date 2022-09-22 17:09:21
|
|
39
39
|
* @returns {*} {IParams}
|
|
40
40
|
*/
|
|
41
|
-
|
|
41
|
+
getFilterParams(): IParams;
|
|
42
42
|
/**
|
|
43
43
|
* 执行搜索行为
|
|
44
44
|
* @author lxm
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-form.controller.d.ts","sourceRoot":"","sources":["../../../../../src/controller/control/form/search-form/search-form.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;;;;;;;GASG;AACH,qBAAa,oBACX,SAAQ,cAAc,CAAC,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,CACxE,YAAW,qBAAqB;IAEhC;;;;;;OAMG;IACH,OAAO,EAAG,iBAAiB,CAAC;cAEZ,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;cAS1B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAS1C;;;;;;OAMG;IACG,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC;IAwB5B;;;;;;OAMG;IACH,
|
|
1
|
+
{"version":3,"file":"search-form.controller.d.ts","sourceRoot":"","sources":["../../../../../src/controller/control/form/search-form/search-form.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;;;;;;;GASG;AACH,qBAAa,oBACX,SAAQ,cAAc,CAAC,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,CACxE,YAAW,qBAAqB;IAEhC;;;;;;OAMG;IACH,OAAO,EAAG,iBAAiB,CAAC;cAEZ,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;cAS1B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAS1C;;;;;;OAMG;IACG,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC;IAwB5B;;;;;;OAMG;IACH,eAAe,IAAI,OAAO;IAY1B;;;;;OAKG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B;;;;;OAKG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1C;;;;;OAKG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B;;;;;;OAMG;IACG,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAOtD;;;;;;OAMG;IACG,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAOnD"}
|
|
@@ -59,14 +59,22 @@ export class SearchFormController extends FormController {
|
|
|
59
59
|
return this.data;
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
62
|
-
*
|
|
62
|
+
* 获取搜索表单的过滤参数
|
|
63
63
|
*
|
|
64
64
|
* @author lxm
|
|
65
65
|
* @date 2022-09-22 17:09:21
|
|
66
66
|
* @returns {*} {IParams}
|
|
67
67
|
*/
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
getFilterParams() {
|
|
69
|
+
const filterParams = {};
|
|
70
|
+
Object.keys(this.state.data).forEach(key => {
|
|
71
|
+
const value = this.state.data[key];
|
|
72
|
+
// 排除空值
|
|
73
|
+
if (value !== null && value !== undefined && value !== '') {
|
|
74
|
+
filterParams[key] = value;
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
return filterParams;
|
|
70
78
|
}
|
|
71
79
|
/**
|
|
72
80
|
* 执行搜索行为
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IDEMobMDCtrl, IUIActionGroup, IUIActionGroupDetail } from '@ibiz/model-core';
|
|
2
|
-
import { IMobMDCtrlEvent, IMobMDCtrlController, IMobMdCtrlState, IMobMDCtrlRowState, MDCtrlLoadParams } from '../../../interface';
|
|
2
|
+
import { IMobMDCtrlEvent, IMobMDCtrlController, IMobMdCtrlState, IMobMDCtrlRowState, MDCtrlLoadParams, CodeListItem } from '../../../interface';
|
|
3
3
|
import { MDCtrlService } from './md-ctrl.service';
|
|
4
4
|
import { MobMDCtrlRowState } from './md-ctrl-row.state';
|
|
5
5
|
import { MDControlController } from '../../common';
|
|
@@ -7,6 +7,15 @@ import { ControlVO } from '../../../service';
|
|
|
7
7
|
export declare class MDCtrlController extends MDControlController<IDEMobMDCtrl, IMobMdCtrlState, IMobMDCtrlEvent> implements IMobMDCtrlController {
|
|
8
8
|
service: MDCtrlService;
|
|
9
9
|
protected initState(): void;
|
|
10
|
+
/**
|
|
11
|
+
* 分组代码表项集合
|
|
12
|
+
*
|
|
13
|
+
* @author zk
|
|
14
|
+
* @date 2023-10-11 04:10:06
|
|
15
|
+
* @type {readonly}
|
|
16
|
+
* @memberof MDCtrlController
|
|
17
|
+
*/
|
|
18
|
+
groupCodeListItems?: readonly CodeListItem[];
|
|
10
19
|
protected onCreated(): Promise<void>;
|
|
11
20
|
/**
|
|
12
21
|
* 设置排序
|
|
@@ -40,7 +49,7 @@ export declare class MDCtrlController extends MDControlController<IDEMobMDCtrl,
|
|
|
40
49
|
* @author zk
|
|
41
50
|
* @date 2023-05-26 02:05:46
|
|
42
51
|
* @param {IData[]} items
|
|
43
|
-
* @memberof
|
|
52
|
+
* @memberof MDCtrlController
|
|
44
53
|
*/
|
|
45
54
|
setData(items: IData[]): void;
|
|
46
55
|
/**
|
|
@@ -49,7 +58,7 @@ export declare class MDCtrlController extends MDControlController<IDEMobMDCtrl,
|
|
|
49
58
|
* @author zk
|
|
50
59
|
* @date 2023-05-26 02:05:35
|
|
51
60
|
* @return {*} {IData[]}
|
|
52
|
-
* @memberof
|
|
61
|
+
* @memberof MDCtrlController
|
|
53
62
|
*/
|
|
54
63
|
getAllData(): IData[];
|
|
55
64
|
/**
|
|
@@ -73,5 +82,31 @@ export declare class MDCtrlController extends MDControlController<IDEMobMDCtrl,
|
|
|
73
82
|
*/
|
|
74
83
|
protected initActionStates(row: MobMDCtrlRowState): void;
|
|
75
84
|
protected initUIActionGroup(row: MobMDCtrlRowState, group: IUIActionGroup): void;
|
|
85
|
+
/**
|
|
86
|
+
* 处理数据分组
|
|
87
|
+
*
|
|
88
|
+
* @memberof MDCtrlController
|
|
89
|
+
*/
|
|
90
|
+
protected handleDataGroup(): Promise<void>;
|
|
91
|
+
/**
|
|
92
|
+
* 处理自动分组
|
|
93
|
+
*
|
|
94
|
+
* @memberof MDCtrlController
|
|
95
|
+
*/
|
|
96
|
+
protected handleAutoGroup(): void;
|
|
97
|
+
/**
|
|
98
|
+
* 加载并初始化分组代码表项集合
|
|
99
|
+
* @author lxm
|
|
100
|
+
* @date 2023-08-29 05:11:39
|
|
101
|
+
* @protected
|
|
102
|
+
* @return {*} {Promise<void>}
|
|
103
|
+
*/
|
|
104
|
+
protected initGroupCodeListItems(): Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* 处理代码表分组
|
|
107
|
+
*
|
|
108
|
+
* @memberof MDCtrlController
|
|
109
|
+
*/
|
|
110
|
+
protected handleCodeListGroup(): Promise<void>;
|
|
76
111
|
}
|
|
77
112
|
//# sourceMappingURL=md-ctrl.controller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"md-ctrl.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/md-ctrl/md-ctrl.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,cAAc,EACd,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"md-ctrl.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/md-ctrl/md-ctrl.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,cAAc,EACd,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAEhB,YAAY,EACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C,qBAAa,gBACX,SAAQ,mBAAmB,CAAC,YAAY,EAAE,eAAe,EAAE,eAAe,CAC1E,YAAW,oBAAoB;IAEvB,OAAO,EAAE,aAAa,CAAC;IAE/B,SAAS,CAAC,SAAS,IAAI,IAAI;IAQ3B;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;cAE7B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ1C;;;;;;;OAOG;IACH,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI;IAcnD;;;;;OAKG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAO/B;;;;;;;OAOG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,SAAS,CACb,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,SAAS,EAAE,GACjB,OAAO,CAAC,KAAK,EAAE,CAAC;IAkBnB;;;;;;;OAOG;IACH,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI;IAQ7B;;;;;;;OAOG;IACH,UAAU,IAAI,KAAK,EAAE;IAIrB;;;;;;;;;OASG;IACG,aAAa,CACjB,MAAM,EAAE,oBAAoB,EAC5B,GAAG,EAAE,kBAAkB,EACvB,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,IAAI,CAAC;IAWhB;;;;;;;OAOG;IACH,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI;IAUxD,SAAS,CAAC,iBAAiB,CACzB,GAAG,EAAE,iBAAiB,EACtB,KAAK,EAAE,cAAc,GACpB,IAAI;IAqBP;;;;OAIG;cACa,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAchD;;;;OAIG;IACH,SAAS,CAAC,eAAe,IAAI,IAAI;IA+BjC;;;;;;OAMG;cACa,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAavD;;;;OAIG;cACa,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;CAiCrD"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { RuntimeModelError } from '@ibiz-template/core';
|
|
2
|
+
import { isNil } from 'ramda';
|
|
1
3
|
import { MDCtrlService } from './md-ctrl.service';
|
|
2
4
|
import { MobMDCtrlRowState } from './md-ctrl-row.state';
|
|
3
5
|
import { MDControlController } from '../../common';
|
|
@@ -64,7 +66,7 @@ export class MDCtrlController extends MDControlController {
|
|
|
64
66
|
async refresh() {
|
|
65
67
|
await this.load({ isInitialLoad: true });
|
|
66
68
|
}
|
|
67
|
-
afterLoad(args, items) {
|
|
69
|
+
async afterLoad(args, items) {
|
|
68
70
|
if (args.isInitialLoad) {
|
|
69
71
|
this.state.rows = [];
|
|
70
72
|
}
|
|
@@ -75,6 +77,8 @@ export class MDCtrlController extends MDControlController {
|
|
|
75
77
|
return row;
|
|
76
78
|
}));
|
|
77
79
|
}
|
|
80
|
+
await this.initGroupCodeListItems();
|
|
81
|
+
await this.handleDataGroup();
|
|
78
82
|
return super.afterLoad(args, items);
|
|
79
83
|
}
|
|
80
84
|
/**
|
|
@@ -83,7 +87,7 @@ export class MDCtrlController extends MDControlController {
|
|
|
83
87
|
* @author zk
|
|
84
88
|
* @date 2023-05-26 02:05:46
|
|
85
89
|
* @param {IData[]} items
|
|
86
|
-
* @memberof
|
|
90
|
+
* @memberof MDCtrlController
|
|
87
91
|
*/
|
|
88
92
|
setData(items) {
|
|
89
93
|
const rows = items.map(item => {
|
|
@@ -98,7 +102,7 @@ export class MDCtrlController extends MDControlController {
|
|
|
98
102
|
* @author zk
|
|
99
103
|
* @date 2023-05-26 02:05:35
|
|
100
104
|
* @return {*} {IData[]}
|
|
101
|
-
* @memberof
|
|
105
|
+
* @memberof MDCtrlController
|
|
102
106
|
*/
|
|
103
107
|
getAllData() {
|
|
104
108
|
return this.state.rows.map(row => row.data);
|
|
@@ -157,4 +161,107 @@ export class MDCtrlController extends MDControlController {
|
|
|
157
161
|
containerState.update(row.data.getOrigin());
|
|
158
162
|
row.uaColStates[group.id] = containerState;
|
|
159
163
|
}
|
|
164
|
+
/**
|
|
165
|
+
* 处理数据分组
|
|
166
|
+
*
|
|
167
|
+
* @memberof MDCtrlController
|
|
168
|
+
*/
|
|
169
|
+
async handleDataGroup() {
|
|
170
|
+
const { enableGroup, groupMode, groupAppDEFieldId } = this.model;
|
|
171
|
+
if (enableGroup && groupMode) {
|
|
172
|
+
if (!groupAppDEFieldId) {
|
|
173
|
+
throw new RuntimeModelError(this.model, '分组属性没有配置');
|
|
174
|
+
}
|
|
175
|
+
if (groupMode === 'AUTO') {
|
|
176
|
+
this.handleAutoGroup();
|
|
177
|
+
}
|
|
178
|
+
else if (groupMode === 'CODELIST') {
|
|
179
|
+
await this.handleCodeListGroup();
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* 处理自动分组
|
|
185
|
+
*
|
|
186
|
+
* @memberof MDCtrlController
|
|
187
|
+
*/
|
|
188
|
+
handleAutoGroup() {
|
|
189
|
+
const { groupAppDEFieldId } = this.model;
|
|
190
|
+
if (groupAppDEFieldId) {
|
|
191
|
+
const { items } = this.state;
|
|
192
|
+
const groupMap = new Map();
|
|
193
|
+
items.forEach((item) => {
|
|
194
|
+
const groupVal = item[groupAppDEFieldId];
|
|
195
|
+
if (isNil(groupVal)) {
|
|
196
|
+
// 分组无值的不显示
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
if (!groupMap.has(groupVal)) {
|
|
200
|
+
groupMap.set(groupVal, []);
|
|
201
|
+
}
|
|
202
|
+
groupMap
|
|
203
|
+
.get(groupVal)
|
|
204
|
+
.push(new MobMDCtrlRowState(item, this));
|
|
205
|
+
});
|
|
206
|
+
const groups = [];
|
|
207
|
+
groupMap.forEach((value, key) => {
|
|
208
|
+
groups.push({
|
|
209
|
+
caption: key,
|
|
210
|
+
key,
|
|
211
|
+
children: [...value],
|
|
212
|
+
});
|
|
213
|
+
});
|
|
214
|
+
this.state.groups = groups;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* 加载并初始化分组代码表项集合
|
|
219
|
+
* @author lxm
|
|
220
|
+
* @date 2023-08-29 05:11:39
|
|
221
|
+
* @protected
|
|
222
|
+
* @return {*} {Promise<void>}
|
|
223
|
+
*/
|
|
224
|
+
async initGroupCodeListItems() {
|
|
225
|
+
const { groupCodeListId } = this.model;
|
|
226
|
+
if (!groupCodeListId) {
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
const app = ibiz.hub.getApp(this.context.srfappid);
|
|
230
|
+
this.groupCodeListItems = await app.codeList.get(groupCodeListId, this.context, this.params);
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* 处理代码表分组
|
|
234
|
+
*
|
|
235
|
+
* @memberof MDCtrlController
|
|
236
|
+
*/
|
|
237
|
+
async handleCodeListGroup() {
|
|
238
|
+
const { groupAppDEFieldId, groupCodeListId } = this.model;
|
|
239
|
+
if (!groupCodeListId) {
|
|
240
|
+
throw new RuntimeModelError(this.model, '分组代码表没有配置');
|
|
241
|
+
}
|
|
242
|
+
const { items } = this.state;
|
|
243
|
+
const groupMap = new Map();
|
|
244
|
+
this.groupCodeListItems.forEach(item => {
|
|
245
|
+
groupMap.set(item.value, []);
|
|
246
|
+
});
|
|
247
|
+
items.forEach((item) => {
|
|
248
|
+
const groupVal = item[groupAppDEFieldId];
|
|
249
|
+
const groupArr = groupMap.get(groupVal);
|
|
250
|
+
if (groupArr) {
|
|
251
|
+
groupArr.push(new MobMDCtrlRowState(item, this));
|
|
252
|
+
}
|
|
253
|
+
// 不在代码表里数据忽略
|
|
254
|
+
});
|
|
255
|
+
const groups = [];
|
|
256
|
+
groupMap.forEach((arr, key) => {
|
|
257
|
+
// 标题
|
|
258
|
+
const codeListItem = this.groupCodeListItems.find(item => item.value === key);
|
|
259
|
+
groups.push({
|
|
260
|
+
caption: codeListItem.text,
|
|
261
|
+
key: codeListItem.value,
|
|
262
|
+
children: arr,
|
|
263
|
+
});
|
|
264
|
+
});
|
|
265
|
+
this.state.groups = groups;
|
|
266
|
+
}
|
|
160
267
|
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { ISearchBarFilter } from '@ibiz/model-core';
|
|
2
|
+
import { IEditorContainerController, IEditorController, IEditorProvider } from '../../../interface';
|
|
3
|
+
import { SearchBarController } from './search-bar.controller';
|
|
4
|
+
/**
|
|
5
|
+
* 搜索栏过滤项控制器
|
|
6
|
+
* @author lxm
|
|
7
|
+
* @date 2023-10-12 05:49:19
|
|
8
|
+
* @export
|
|
9
|
+
* @class SearchBarFilterController
|
|
10
|
+
* @implements {IEditorContainerController}
|
|
11
|
+
*/
|
|
12
|
+
export declare class SearchBarFilterController implements IEditorContainerController {
|
|
13
|
+
model: ISearchBarFilter;
|
|
14
|
+
searchBar: SearchBarController;
|
|
15
|
+
unitName: string | undefined;
|
|
16
|
+
valueFormat: string | undefined;
|
|
17
|
+
get context(): IContext;
|
|
18
|
+
get params(): IParams;
|
|
19
|
+
dataType: number | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* 编辑器控制器
|
|
22
|
+
*
|
|
23
|
+
* @author lxm
|
|
24
|
+
* @date 2022-08-24 20:08:42
|
|
25
|
+
* @type {IEditorController}
|
|
26
|
+
*/
|
|
27
|
+
editor?: IEditorController;
|
|
28
|
+
/**
|
|
29
|
+
* 编辑器适配器
|
|
30
|
+
*
|
|
31
|
+
* @author lxm
|
|
32
|
+
* @date 2022-08-24 20:08:42
|
|
33
|
+
*/
|
|
34
|
+
editorProvider?: IEditorProvider;
|
|
35
|
+
/**
|
|
36
|
+
* 过滤的属性名称(有实体属性的是属性codeName小写,没有就是项名称)
|
|
37
|
+
* @author lxm
|
|
38
|
+
* @date 2023-10-13 02:51:39
|
|
39
|
+
* @type {string}
|
|
40
|
+
*/
|
|
41
|
+
fieldName: string;
|
|
42
|
+
/**
|
|
43
|
+
* 属性显示的标题
|
|
44
|
+
* @author lxm
|
|
45
|
+
* @date 2023-10-13 03:02:42
|
|
46
|
+
* @type {string}
|
|
47
|
+
*/
|
|
48
|
+
label: string;
|
|
49
|
+
/**
|
|
50
|
+
* 配置的属性搜索模式对应的值操作
|
|
51
|
+
* @author lxm
|
|
52
|
+
* @date 2023-10-13 03:22:10
|
|
53
|
+
* @type {string}
|
|
54
|
+
*/
|
|
55
|
+
valueOP?: string;
|
|
56
|
+
constructor(model: ISearchBarFilter, searchBar: SearchBarController);
|
|
57
|
+
/**
|
|
58
|
+
* 初始化
|
|
59
|
+
* @author lxm
|
|
60
|
+
* @date 2023-10-12 05:47:19
|
|
61
|
+
* @return {*} {Promise<void>}
|
|
62
|
+
*/
|
|
63
|
+
init(): Promise<void>;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=search-bar-filter.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-bar-filter.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/search-bar/search-bar-filter.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;;;;;;GAOG;AACH,qBAAa,yBAA0B,YAAW,0BAA0B;IAyDjE,KAAK,EAAE,gBAAgB;IACvB,SAAS,EAAE,mBAAmB;IAzDvC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAE7B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC,IAAI,OAAO,IAAI,QAAQ,CAEtB;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAE7B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAE3B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,eAAe,CAAC;IAEjC;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;gBAGR,KAAK,EAAE,gBAAgB,EACvB,SAAS,EAAE,mBAAmB;IAevC;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAa5B"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { RuntimeModelError } from '@ibiz-template/core';
|
|
2
|
+
import { findFieldById } from '../../../model';
|
|
3
|
+
import { getEditorProvider } from '../../../register';
|
|
4
|
+
/**
|
|
5
|
+
* 搜索栏过滤项控制器
|
|
6
|
+
* @author lxm
|
|
7
|
+
* @date 2023-10-12 05:49:19
|
|
8
|
+
* @export
|
|
9
|
+
* @class SearchBarFilterController
|
|
10
|
+
* @implements {IEditorContainerController}
|
|
11
|
+
*/
|
|
12
|
+
export class SearchBarFilterController {
|
|
13
|
+
get context() {
|
|
14
|
+
return this.searchBar.context;
|
|
15
|
+
}
|
|
16
|
+
get params() {
|
|
17
|
+
return this.searchBar.params;
|
|
18
|
+
}
|
|
19
|
+
constructor(model, searchBar) {
|
|
20
|
+
var _a;
|
|
21
|
+
this.model = model;
|
|
22
|
+
this.searchBar = searchBar;
|
|
23
|
+
// 实体属性
|
|
24
|
+
let field;
|
|
25
|
+
if (model.appDEFieldId) {
|
|
26
|
+
field = findFieldById(searchBar.appDataEntity, model.appDEFieldId);
|
|
27
|
+
}
|
|
28
|
+
this.fieldName = field ? field.codeName.toLowerCase() : model.id;
|
|
29
|
+
// 属性标题
|
|
30
|
+
this.label = model.caption || (field === null || field === void 0 ? void 0 : field.logicName) || model.id;
|
|
31
|
+
this.valueOP = (_a = model.defsearchMode) === null || _a === void 0 ? void 0 : _a.valueOP;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* 初始化
|
|
35
|
+
* @author lxm
|
|
36
|
+
* @date 2023-10-12 05:47:19
|
|
37
|
+
* @return {*} {Promise<void>}
|
|
38
|
+
*/
|
|
39
|
+
async init() {
|
|
40
|
+
if (!this.model.editor) {
|
|
41
|
+
throw new RuntimeModelError(this.model, '缺少编辑器模型');
|
|
42
|
+
}
|
|
43
|
+
this.editorProvider = await getEditorProvider(this.model.editor);
|
|
44
|
+
if (this.editorProvider) {
|
|
45
|
+
this.editor = await this.editorProvider.createController(this.model.editor, this);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ISearchBar } from '@ibiz/model-core';
|
|
2
|
-
import { ISearchBarState, ISearchBarEvent, ISearchBarController } from '../../../interface';
|
|
1
|
+
import { IAppDataEntity, ISearchBar } from '@ibiz/model-core';
|
|
2
|
+
import { ISearchBarState, ISearchBarEvent, ISearchBarController, IFilterNode } from '../../../interface';
|
|
3
3
|
import { ControlController } from '../../common';
|
|
4
|
+
import { SearchBarFilterController } from './search-bar-filter.controller';
|
|
4
5
|
/**
|
|
5
6
|
* 搜索栏控制器
|
|
6
7
|
*
|
|
@@ -12,14 +13,36 @@ import { ControlController } from '../../common';
|
|
|
12
13
|
*/
|
|
13
14
|
export declare class SearchBarController extends ControlController<ISearchBar, ISearchBarState, ISearchBarEvent> implements ISearchBarController {
|
|
14
15
|
/**
|
|
15
|
-
*
|
|
16
|
+
* 快速搜索占位符
|
|
16
17
|
* @return {*}
|
|
17
18
|
* @author: zhujiamin
|
|
18
19
|
* @Date: 2023-08-11 14:13:10
|
|
19
20
|
*/
|
|
20
21
|
placeHolder: string;
|
|
22
|
+
/**
|
|
23
|
+
* 过滤项控制器集合
|
|
24
|
+
* @author lxm
|
|
25
|
+
* @date 2023-10-13 03:31:26
|
|
26
|
+
* @type {SearchBarFilterController[]}
|
|
27
|
+
*/
|
|
28
|
+
filterControllers: SearchBarFilterController[];
|
|
29
|
+
/**
|
|
30
|
+
* 实体模型
|
|
31
|
+
* @author lxm
|
|
32
|
+
* @date 2023-10-13 02:49:59
|
|
33
|
+
* @type {IAppDataEntity}
|
|
34
|
+
*/
|
|
35
|
+
appDataEntity: IAppDataEntity;
|
|
21
36
|
protected initState(): void;
|
|
22
37
|
protected onCreated(): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* 计算快速搜索的占位
|
|
40
|
+
* @author lxm
|
|
41
|
+
* @date 2023-10-16 03:49:47
|
|
42
|
+
* @protected
|
|
43
|
+
* @return {*} {void}
|
|
44
|
+
*/
|
|
45
|
+
protected calcQuickSearchPlaceholder(): void;
|
|
23
46
|
/**
|
|
24
47
|
* 处理输入
|
|
25
48
|
* @param {string} val
|
|
@@ -34,6 +57,42 @@ export declare class SearchBarController extends ControlController<ISearchBar, I
|
|
|
34
57
|
* @author: zhujiamin
|
|
35
58
|
* @Date: 2023-06-01 18:08:18
|
|
36
59
|
*/
|
|
37
|
-
|
|
60
|
+
onSearch(): void;
|
|
61
|
+
/**
|
|
62
|
+
* 获取搜索栏的过滤参数(包括快速搜索,快速分组和过滤器的参数)
|
|
63
|
+
* @author lxm
|
|
64
|
+
* @date 2023-10-16 03:54:07
|
|
65
|
+
* @return {*} {IParams}
|
|
66
|
+
*/
|
|
67
|
+
getFilterParams(): IParams;
|
|
68
|
+
/**
|
|
69
|
+
* 重置过滤器
|
|
70
|
+
* @author lxm
|
|
71
|
+
* @date 2023-10-16 03:52:44
|
|
72
|
+
*/
|
|
73
|
+
resetFilter(): void;
|
|
74
|
+
/**
|
|
75
|
+
* 初始化过滤项控制器
|
|
76
|
+
* @author lxm
|
|
77
|
+
* @date 2023-10-13 03:33:17
|
|
78
|
+
* @protected
|
|
79
|
+
* @return {*} {Promise<void>}
|
|
80
|
+
*/
|
|
81
|
+
protected initSearchBarFilters(): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* 计算过滤项参数
|
|
84
|
+
* @author lxm
|
|
85
|
+
* @date 2023-10-13 05:53:35
|
|
86
|
+
* @return {*} {IData}
|
|
87
|
+
*/
|
|
88
|
+
calcFilters(): IData | undefined;
|
|
89
|
+
/**
|
|
90
|
+
* 格式化过滤项
|
|
91
|
+
* @author lxm
|
|
92
|
+
* @date 2023-10-16 03:45:41
|
|
93
|
+
* @param {IFilterNode} node
|
|
94
|
+
* @return {*} {IData}
|
|
95
|
+
*/
|
|
96
|
+
formatFilters(node: IFilterNode): IData;
|
|
38
97
|
}
|
|
39
98
|
//# sourceMappingURL=search-bar.controller.d.ts.map
|