@ibiz-template/runtime 0.6.18 → 0.7.0
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 +1006 -338
- package/dist/index.system.min.js +1 -1
- package/out/app-hub.d.ts +7 -0
- package/out/app-hub.d.ts.map +1 -1
- package/out/app-hub.js +11 -0
- package/out/application.d.ts +7 -0
- package/out/application.d.ts.map +1 -1
- package/out/application.js +9 -0
- package/out/controller/common/control/md-control.controller.d.ts.map +1 -1
- package/out/controller/common/control/md-control.controller.js +3 -0
- package/out/controller/control/chart/chart.controller.d.ts +38 -0
- package/out/controller/control/chart/chart.controller.d.ts.map +1 -1
- package/out/controller/control/chart/chart.controller.js +183 -0
- package/out/controller/control/chart/generator/base-series-generator.js +1 -1
- package/out/controller/control/form/form/form.controller.d.ts.map +1 -1
- package/out/controller/control/form/form/form.controller.js +4 -3
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.state.d.ts +2 -2
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.state.d.ts.map +1 -1
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.state.js +2 -2
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.controller.d.ts +32 -1
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.controller.d.ts.map +1 -1
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.controller.js +63 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.state.d.ts +12 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.state.d.ts.map +1 -0
- package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.state.js +13 -0
- package/out/controller/control/search-bar/index.d.ts +3 -1
- package/out/controller/control/search-bar/index.d.ts.map +1 -1
- package/out/controller/control/search-bar/index.js +3 -1
- package/out/controller/control/search-bar/interface-util.d.ts +75 -0
- package/out/controller/control/search-bar/interface-util.d.ts.map +1 -0
- package/out/controller/control/search-bar/interface-util.js +274 -0
- package/out/controller/control/search-bar/search-bar-filter-items.controller.d.ts +1 -2
- package/out/controller/control/search-bar/search-bar-filter-items.controller.d.ts.map +1 -1
- package/out/controller/control/search-bar/search-bar-filter-items.controller.js +13 -10
- package/out/controller/control/search-bar/search-bar-filter-simple-items.controller.d.ts +37 -0
- package/out/controller/control/search-bar/search-bar-filter-simple-items.controller.d.ts.map +1 -0
- package/out/controller/control/search-bar/search-bar-filter-simple-items.controller.js +47 -0
- package/out/controller/control/search-bar/search-bar-filter.controller.d.ts +20 -5
- package/out/controller/control/search-bar/search-bar-filter.controller.d.ts.map +1 -1
- package/out/controller/control/search-bar/search-bar-filter.controller.js +13 -2
- package/out/controller/control/search-bar/search-bar.controller.d.ts +15 -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 +80 -30
- package/out/controller/control/search-bar/util.d.ts +35 -0
- package/out/controller/control/search-bar/util.d.ts.map +1 -0
- package/out/controller/control/search-bar/util.js +45 -0
- package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts +7 -0
- package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts.map +1 -1
- package/out/interface/common/i-app-service/i-app-service.d.ts +7 -0
- package/out/interface/common/i-app-service/i-app-service.d.ts.map +1 -1
- package/out/interface/controller/controller/control/i-app-menu.controller.d.ts +8 -1
- package/out/interface/controller/controller/control/i-app-menu.controller.d.ts.map +1 -1
- package/out/interface/controller/state/control/i-chart.state.d.ts +28 -0
- package/out/interface/controller/state/control/i-chart.state.d.ts.map +1 -1
- package/out/interface/controller/state/control/i-md-control.state.d.ts +4 -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 -1
- package/out/interface/controller/state/control/index.d.ts.map +1 -1
- package/out/interface/controller/state/control/index.js +1 -1
- package/out/interface/controller/state/control/search-bar/i-filter-node.d.ts +157 -0
- package/out/interface/controller/state/control/search-bar/i-filter-node.d.ts.map +1 -0
- package/out/interface/controller/state/control/search-bar/i-quick-search.d.ts +24 -0
- package/out/interface/controller/state/control/search-bar/i-quick-search.d.ts.map +1 -0
- package/out/interface/controller/state/control/search-bar/i-quick-search.js +1 -0
- package/out/interface/controller/state/control/search-bar/i-search-bar-group.d.ts +89 -0
- package/out/interface/controller/state/control/search-bar/i-search-bar-group.d.ts.map +1 -0
- package/out/interface/controller/state/control/search-bar/i-search-bar-group.js +1 -0
- package/out/interface/controller/state/control/search-bar/i-search-bar.state.d.ts +78 -0
- package/out/interface/controller/state/control/search-bar/i-search-bar.state.d.ts.map +1 -0
- package/out/interface/controller/state/control/search-bar/i-search-bar.state.js +1 -0
- package/out/interface/controller/state/control/search-bar/i-search-cond-ex.d.ts +65 -0
- package/out/interface/controller/state/control/search-bar/i-search-cond-ex.d.ts.map +1 -0
- package/out/interface/controller/state/control/search-bar/i-search-cond-ex.js +1 -0
- package/out/interface/controller/state/control/search-bar/i-search-cond.d.ts +43 -0
- package/out/interface/controller/state/control/search-bar/i-search-cond.d.ts.map +1 -0
- package/out/interface/controller/state/control/search-bar/i-search-cond.js +1 -0
- package/out/interface/controller/state/control/search-bar/index.d.ts +7 -0
- package/out/interface/controller/state/control/search-bar/index.d.ts.map +1 -0
- package/out/interface/controller/state/control/search-bar/index.js +1 -0
- package/out/service/service/code-list/code-list.service.d.ts +14 -0
- package/out/service/service/code-list/code-list.service.d.ts.map +1 -1
- package/out/service/service/code-list/code-list.service.js +39 -0
- package/out/service/service/control/md-control.service.d.ts.map +1 -1
- package/out/service/service/control/md-control.service.js +3 -0
- package/out/service/service/counter/counter.service.d.ts.map +1 -1
- package/out/service/service/counter/counter.service.js +5 -1
- package/out/service/utils/app-counter/app-counter.js +1 -1
- package/out/service/utils/dynamic-code-list/dynamic-code-list.d.ts +81 -0
- package/out/service/utils/dynamic-code-list/dynamic-code-list.d.ts.map +1 -1
- package/out/service/utils/dynamic-code-list/dynamic-code-list.js +127 -2
- package/package.json +2 -2
- package/out/controller/control/search-bar/use-searchcond.d.ts +0 -33
- package/out/controller/control/search-bar/use-searchcond.d.ts.map +0 -1
- package/out/controller/control/search-bar/use-searchcond.js +0 -117
- package/out/interface/controller/state/control/i-search-bar.state.d.ts +0 -224
- package/out/interface/controller/state/control/i-search-bar.state.d.ts.map +0 -1
- /package/out/interface/controller/state/control/{i-search-bar.state.js → search-bar/i-filter-node.js} +0 -0
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export * from './search-bar.controller';
|
|
2
2
|
export { SearchBarFilterController } from './search-bar-filter.controller';
|
|
3
3
|
export * from './entity-schema';
|
|
4
|
-
export * from './
|
|
4
|
+
export * from './interface-util';
|
|
5
|
+
export * from './util';
|
|
5
6
|
export { SearchBarFilterItemsController } from './search-bar-filter-items.controller';
|
|
7
|
+
export { SearchBarFilterSimpleItemsController } from './search-bar-filter-simple-items.controller';
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { IFilterNode, ISearchCond, ISearchCondEx } from '../../../interface';
|
|
2
|
+
/**
|
|
3
|
+
* 获取初始过滤项树节点数据集合
|
|
4
|
+
* @return {*}
|
|
5
|
+
* @author: zhujiamin
|
|
6
|
+
* @Date: 2023-12-21 17:29:47
|
|
7
|
+
*/
|
|
8
|
+
export declare function getOriginFilterNodes(): IFilterNode[];
|
|
9
|
+
/**
|
|
10
|
+
* 校验过滤项集合是否正确且至少有一个属性过滤项
|
|
11
|
+
* @author lxm
|
|
12
|
+
* @date 2024-04-09 03:02:00
|
|
13
|
+
* @export
|
|
14
|
+
* @param {IFilterNode[]} filterNodes
|
|
15
|
+
* @return {*} {{
|
|
16
|
+
* pass: boolean; 是否通过校验
|
|
17
|
+
* }}
|
|
18
|
+
*/
|
|
19
|
+
export declare function validateFilterNodes(filterNodes: IFilterNode[]): {
|
|
20
|
+
pass: boolean;
|
|
21
|
+
};
|
|
22
|
+
/** 后续执行回调函数 */
|
|
23
|
+
export type AfterCallback = (filterNode: IFilterNode, searchCond: ISearchCond) => void;
|
|
24
|
+
/**
|
|
25
|
+
* IFilterNode转换成ISearchCond接口
|
|
26
|
+
* @author lxm
|
|
27
|
+
* @date 2024-04-09 03:16:25
|
|
28
|
+
* @export
|
|
29
|
+
* @param {IFilterNode} filterNode
|
|
30
|
+
* @return {*} {ISearchCond}
|
|
31
|
+
*/
|
|
32
|
+
export declare function filterNode2SearchCond(filterNode: IFilterNode, opts?: {
|
|
33
|
+
after: AfterCallback;
|
|
34
|
+
}): ISearchCond;
|
|
35
|
+
/**
|
|
36
|
+
* 转换IFilterNode[]到ISearchCond[]
|
|
37
|
+
* 如果filerNodes校验不通过,则返回undefined
|
|
38
|
+
* @author lxm
|
|
39
|
+
* @date 2024-04-09 03:48:21
|
|
40
|
+
* @export
|
|
41
|
+
* @param {IFilterNode[]} filterNodes
|
|
42
|
+
* @return {*} {(ISearchCond[] | undefined)}
|
|
43
|
+
*/
|
|
44
|
+
export declare function calcSearchConds(filterNodes: IFilterNode[], opts?: {
|
|
45
|
+
after: AfterCallback;
|
|
46
|
+
}): ISearchCond[] | undefined;
|
|
47
|
+
/**
|
|
48
|
+
* ISearchCondEx转换成IFilterNode接口
|
|
49
|
+
* @author lxm
|
|
50
|
+
* @date 2024-04-09 03:26:08
|
|
51
|
+
* @export
|
|
52
|
+
* @param {ISearchCondEx} cond
|
|
53
|
+
* @return {*} {IFilterNode}
|
|
54
|
+
*/
|
|
55
|
+
export declare function SearchCondEx2filterNode(cond: ISearchCondEx): IFilterNode;
|
|
56
|
+
/**
|
|
57
|
+
* IFilterNode转换成ISearchCondEx接口
|
|
58
|
+
* @author lxm
|
|
59
|
+
* @date 2024-04-09 03:16:25
|
|
60
|
+
* @export
|
|
61
|
+
* @param {IFilterNode} filterNode
|
|
62
|
+
* @return {*} {ISearchCondEx}
|
|
63
|
+
*/
|
|
64
|
+
export declare function filterNode2SearchCondEx(filterNode: IFilterNode): ISearchCondEx;
|
|
65
|
+
/**
|
|
66
|
+
* 转换IFilterNode[]到ISearchCondEx[]
|
|
67
|
+
* 如果filerNodes校验不通过,则返回undefined
|
|
68
|
+
* @author lxm
|
|
69
|
+
* @date 2024-04-09 03:48:21
|
|
70
|
+
* @export
|
|
71
|
+
* @param {IFilterNode[]} filterNodes
|
|
72
|
+
* @return {*} {(ISearchCondEx[] | undefined)}
|
|
73
|
+
*/
|
|
74
|
+
export declare function calcSearchCondExs(filterNodes: IFilterNode[]): ISearchCondEx[] | undefined;
|
|
75
|
+
//# sourceMappingURL=interface-util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface-util.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/search-bar/interface-util.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EAIX,WAAW,EACX,aAAa,EAOd,MAAM,oBAAoB,CAAC;AAI5B;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,WAAW,EAAE,CAUpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG;IAC/D,IAAI,EAAE,OAAO,CAAC;CACf,CA6BA;AAID,eAAe;AACf,MAAM,MAAM,aAAa,GAAG,CAC1B,UAAU,EAAE,WAAW,EACvB,UAAU,EAAE,WAAW,KACpB,IAAI,CAAC;AAEV;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,WAAW,EACvB,IAAI,CAAC,EAAE;IAAE,KAAK,EAAE,aAAa,CAAA;CAAE,GAC9B,WAAW,CAuDb;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,WAAW,EAAE,EAC1B,IAAI,CAAC,EAAE;IAAE,KAAK,EAAE,aAAa,CAAA;CAAE,GAC9B,WAAW,EAAE,GAAG,SAAS,CAO3B;AAID;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,aAAa,GAAG,WAAW,CA8DxE;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,WAAW,GACtB,aAAa,CA0Df;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,WAAW,EAAE,GACzB,aAAa,EAAE,GAAG,SAAS,CAO7B"}
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import { recursiveIterate } from '@ibiz-template/core';
|
|
2
|
+
import { isNil } from 'ramda';
|
|
3
|
+
// ! FilterNode接口处理
|
|
4
|
+
/**
|
|
5
|
+
* 获取初始过滤项树节点数据集合
|
|
6
|
+
* @return {*}
|
|
7
|
+
* @author: zhujiamin
|
|
8
|
+
* @Date: 2023-12-21 17:29:47
|
|
9
|
+
*/
|
|
10
|
+
export function getOriginFilterNodes() {
|
|
11
|
+
return [
|
|
12
|
+
{
|
|
13
|
+
nodeType: 'GROUP',
|
|
14
|
+
logicType: 'AND',
|
|
15
|
+
children: [
|
|
16
|
+
{ nodeType: 'FIELD', field: null, valueOP: null, value: null },
|
|
17
|
+
],
|
|
18
|
+
},
|
|
19
|
+
];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 校验过滤项集合是否正确且至少有一个属性过滤项
|
|
23
|
+
* @author lxm
|
|
24
|
+
* @date 2024-04-09 03:02:00
|
|
25
|
+
* @export
|
|
26
|
+
* @param {IFilterNode[]} filterNodes
|
|
27
|
+
* @return {*} {{
|
|
28
|
+
* pass: boolean; 是否通过校验
|
|
29
|
+
* }}
|
|
30
|
+
*/
|
|
31
|
+
export function validateFilterNodes(filterNodes) {
|
|
32
|
+
const result = { pass: false };
|
|
33
|
+
let hasFilter = false; // 是否有属性 过滤项
|
|
34
|
+
let hasError = false; // 是否有属性过滤项格式不正确
|
|
35
|
+
recursiveIterate(filterNodes[0], (node) => {
|
|
36
|
+
// 如果已经有过滤项格式不正确,则跳过
|
|
37
|
+
if (hasError) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (node.nodeType === 'FIELD') {
|
|
41
|
+
hasFilter = true;
|
|
42
|
+
// 如果有属性过滤项缺少必须得属性则有错误
|
|
43
|
+
hasError = !node.field || !node.valueOP || isNil(node.value);
|
|
44
|
+
}
|
|
45
|
+
else if (node.nodeType === 'ITEMS') {
|
|
46
|
+
// ITEMS必须要有属性和操作符并
|
|
47
|
+
hasError = !node.field || !node.valueOP;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
// 分组节点必须要有逻辑类型
|
|
51
|
+
hasError = !node.logicType;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
// 有属性过滤项,且没有报错的时候
|
|
55
|
+
if (hasFilter && !hasError) {
|
|
56
|
+
result.pass = true;
|
|
57
|
+
}
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* IFilterNode转换成ISearchCond接口
|
|
62
|
+
* @author lxm
|
|
63
|
+
* @date 2024-04-09 03:16:25
|
|
64
|
+
* @export
|
|
65
|
+
* @param {IFilterNode} filterNode
|
|
66
|
+
* @return {*} {ISearchCond}
|
|
67
|
+
*/
|
|
68
|
+
export function filterNode2SearchCond(filterNode, opts) {
|
|
69
|
+
let result;
|
|
70
|
+
if (filterNode.nodeType === 'GROUP') {
|
|
71
|
+
// 分组
|
|
72
|
+
const temp = {
|
|
73
|
+
condop: filterNode.logicType,
|
|
74
|
+
condtype: 'GROUP',
|
|
75
|
+
};
|
|
76
|
+
if (filterNode.children.length > 0) {
|
|
77
|
+
temp.searchconds = filterNode.children.map(item => filterNode2SearchCond(item, opts));
|
|
78
|
+
}
|
|
79
|
+
result = temp;
|
|
80
|
+
// 是否取反
|
|
81
|
+
if (filterNode.notMode) {
|
|
82
|
+
temp.notmode = filterNode.notMode;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
else if (filterNode.nodeType === 'FIELD') {
|
|
86
|
+
// 属性
|
|
87
|
+
const temp = {
|
|
88
|
+
condtype: 'DEFIELD',
|
|
89
|
+
fieldname: filterNode.field,
|
|
90
|
+
value: filterNode.value,
|
|
91
|
+
condop: filterNode.valueOP,
|
|
92
|
+
};
|
|
93
|
+
// 值项
|
|
94
|
+
if (filterNode.valueItem) {
|
|
95
|
+
temp.value = filterNode.valueItem;
|
|
96
|
+
}
|
|
97
|
+
result = temp;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
// ITEMS
|
|
101
|
+
const temp = {
|
|
102
|
+
condop: filterNode.valueOP,
|
|
103
|
+
fieldname: filterNode.field,
|
|
104
|
+
condtype: 'ITEMS',
|
|
105
|
+
};
|
|
106
|
+
if (filterNode.children.length > 0) {
|
|
107
|
+
temp.searchconds = filterNode.children.map(item => filterNode2SearchCond(item, opts));
|
|
108
|
+
}
|
|
109
|
+
result = temp;
|
|
110
|
+
}
|
|
111
|
+
// 执行额外后续处理
|
|
112
|
+
if (opts === null || opts === void 0 ? void 0 : opts.after) {
|
|
113
|
+
opts.after(filterNode, result);
|
|
114
|
+
}
|
|
115
|
+
return result;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* 转换IFilterNode[]到ISearchCond[]
|
|
119
|
+
* 如果filerNodes校验不通过,则返回undefined
|
|
120
|
+
* @author lxm
|
|
121
|
+
* @date 2024-04-09 03:48:21
|
|
122
|
+
* @export
|
|
123
|
+
* @param {IFilterNode[]} filterNodes
|
|
124
|
+
* @return {*} {(ISearchCond[] | undefined)}
|
|
125
|
+
*/
|
|
126
|
+
export function calcSearchConds(filterNodes, opts) {
|
|
127
|
+
const { pass } = validateFilterNodes(filterNodes);
|
|
128
|
+
if (!pass) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
const result = filterNodes.map(node => filterNode2SearchCond(node, opts));
|
|
132
|
+
return result;
|
|
133
|
+
}
|
|
134
|
+
// ! ISearchCondEx接口处理
|
|
135
|
+
/**
|
|
136
|
+
* ISearchCondEx转换成IFilterNode接口
|
|
137
|
+
* @author lxm
|
|
138
|
+
* @date 2024-04-09 03:26:08
|
|
139
|
+
* @export
|
|
140
|
+
* @param {ISearchCondEx} cond
|
|
141
|
+
* @return {*} {IFilterNode}
|
|
142
|
+
*/
|
|
143
|
+
export function SearchCondEx2filterNode(cond) {
|
|
144
|
+
var _a, _b;
|
|
145
|
+
let result;
|
|
146
|
+
if (cond.condtype === 'GROUP') {
|
|
147
|
+
// 分组
|
|
148
|
+
const temp = {
|
|
149
|
+
logicType: cond.condop,
|
|
150
|
+
nodeType: 'GROUP',
|
|
151
|
+
children: [],
|
|
152
|
+
};
|
|
153
|
+
if ((_a = cond.searchconds) === null || _a === void 0 ? void 0 : _a.length) {
|
|
154
|
+
temp.children = cond.searchconds.map(item => SearchCondEx2filterNode(item));
|
|
155
|
+
}
|
|
156
|
+
result = temp;
|
|
157
|
+
// 是否取反
|
|
158
|
+
if (cond.notmode) {
|
|
159
|
+
temp.notMode = cond.notmode;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
else if (cond.condtype === 'DEFIELD') {
|
|
163
|
+
// 属性
|
|
164
|
+
const temp = {
|
|
165
|
+
nodeType: 'FIELD',
|
|
166
|
+
field: cond.fieldname,
|
|
167
|
+
value: cond.value,
|
|
168
|
+
valueOP: cond.condop,
|
|
169
|
+
};
|
|
170
|
+
// 值项
|
|
171
|
+
if (cond.valueItem) {
|
|
172
|
+
temp.valueItem = cond.valueItem;
|
|
173
|
+
}
|
|
174
|
+
result = temp;
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
// ITEMS
|
|
178
|
+
const temp = {
|
|
179
|
+
nodeType: 'ITEMS',
|
|
180
|
+
field: cond.fieldname,
|
|
181
|
+
valueOP: cond.condop,
|
|
182
|
+
children: [],
|
|
183
|
+
};
|
|
184
|
+
if ((_b = cond.searchconds) === null || _b === void 0 ? void 0 : _b.length) {
|
|
185
|
+
temp.children = cond.searchconds.map(item => SearchCondEx2filterNode(item));
|
|
186
|
+
}
|
|
187
|
+
if (cond.simple) {
|
|
188
|
+
temp.simple = cond.simple;
|
|
189
|
+
}
|
|
190
|
+
result = temp;
|
|
191
|
+
}
|
|
192
|
+
// 通用处理
|
|
193
|
+
if (cond.hidden === true) {
|
|
194
|
+
result.hidden = true;
|
|
195
|
+
}
|
|
196
|
+
return result;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* IFilterNode转换成ISearchCondEx接口
|
|
200
|
+
* @author lxm
|
|
201
|
+
* @date 2024-04-09 03:16:25
|
|
202
|
+
* @export
|
|
203
|
+
* @param {IFilterNode} filterNode
|
|
204
|
+
* @return {*} {ISearchCondEx}
|
|
205
|
+
*/
|
|
206
|
+
export function filterNode2SearchCondEx(filterNode) {
|
|
207
|
+
let result;
|
|
208
|
+
if (filterNode.nodeType === 'GROUP') {
|
|
209
|
+
// 分组
|
|
210
|
+
const temp = {
|
|
211
|
+
condop: filterNode.logicType,
|
|
212
|
+
condtype: 'GROUP',
|
|
213
|
+
};
|
|
214
|
+
if (filterNode.children.length > 0) {
|
|
215
|
+
temp.searchconds = filterNode.children.map(item => filterNode2SearchCondEx(item));
|
|
216
|
+
}
|
|
217
|
+
result = temp;
|
|
218
|
+
// 是否取反
|
|
219
|
+
if (filterNode.notMode) {
|
|
220
|
+
temp.notmode = filterNode.notMode;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
else if (filterNode.nodeType === 'FIELD') {
|
|
224
|
+
// 属性
|
|
225
|
+
const temp = {
|
|
226
|
+
condtype: 'DEFIELD',
|
|
227
|
+
fieldname: filterNode.field,
|
|
228
|
+
value: filterNode.value,
|
|
229
|
+
condop: filterNode.valueOP,
|
|
230
|
+
};
|
|
231
|
+
// 值项
|
|
232
|
+
if (filterNode.valueItem) {
|
|
233
|
+
temp.valueItem = filterNode.valueItem;
|
|
234
|
+
}
|
|
235
|
+
result = temp;
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
// ITEMS
|
|
239
|
+
const temp = {
|
|
240
|
+
condop: filterNode.valueOP,
|
|
241
|
+
fieldname: filterNode.field,
|
|
242
|
+
condtype: 'ITEMS',
|
|
243
|
+
};
|
|
244
|
+
if (filterNode.children.length > 0) {
|
|
245
|
+
temp.searchconds = filterNode.children.map(item => filterNode2SearchCondEx(item));
|
|
246
|
+
}
|
|
247
|
+
if (filterNode.simple) {
|
|
248
|
+
temp.simple = filterNode.simple;
|
|
249
|
+
}
|
|
250
|
+
result = temp;
|
|
251
|
+
}
|
|
252
|
+
// 通用处理
|
|
253
|
+
if (filterNode.hidden === true) {
|
|
254
|
+
result.hidden = true;
|
|
255
|
+
}
|
|
256
|
+
return result;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* 转换IFilterNode[]到ISearchCondEx[]
|
|
260
|
+
* 如果filerNodes校验不通过,则返回undefined
|
|
261
|
+
* @author lxm
|
|
262
|
+
* @date 2024-04-09 03:48:21
|
|
263
|
+
* @export
|
|
264
|
+
* @param {IFilterNode[]} filterNodes
|
|
265
|
+
* @return {*} {(ISearchCondEx[] | undefined)}
|
|
266
|
+
*/
|
|
267
|
+
export function calcSearchCondExs(filterNodes) {
|
|
268
|
+
const { pass } = validateFilterNodes(filterNodes);
|
|
269
|
+
if (!pass) {
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
const result = filterNodes.map(filterNode2SearchCondEx);
|
|
273
|
+
return result;
|
|
274
|
+
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { IAppDataEntity, ISearchBarFilter } from '@ibiz/model-core';
|
|
2
2
|
import { SearchBarFilterController } from './search-bar-filter.controller';
|
|
3
|
-
/** 不需要编辑器的OP */
|
|
4
|
-
export declare const ExcludeOPs: string[];
|
|
5
3
|
type FieldInfo = {
|
|
6
4
|
name: string;
|
|
7
5
|
label: string;
|
|
8
6
|
valueOPs: string[];
|
|
7
|
+
fieldName: string;
|
|
9
8
|
};
|
|
10
9
|
/**
|
|
11
10
|
* 搜索栏过滤项ITEMS控制器
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-bar-filter-items.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/search-bar/search-bar-filter-items.controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"search-bar-filter-items.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/search-bar/search-bar-filter-items.controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAI3E,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;;;GAOG;AACH,qBAAa,8BAA+B,SAAQ,yBAAyB;IA2BzE,SAAS,CAAC,YAAY,EAAE,gBAAgB,EAAE;IA1B5C;;;;;OAKG;IACH,SAAS,CAAC,UAAU,EAAG,cAAc,CAAC;IAEtC;;;;;OAKG;IACH,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAM;IAEjC;;;;;;OAMG;IACH,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAa;gBAGhE,YAAY,EAAE,gBAAgB,EAAE,EAC1C,aAAa,EAAE,cAAc,EAC7B,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,OAAO;IAMjB;;;;;;;;OAQG;IACH,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAIpD;;;;;;OAMG;cACa,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB/C;;;;;;OAMG;cACa,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAoDxC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B;;;;;;;OAOG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,yBAAyB;CAG7E"}
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
/* eslint-disable no-template-curly-in-string */
|
|
2
2
|
import { RuntimeError } from '@ibiz-template/core';
|
|
3
3
|
import { clone } from 'ramda';
|
|
4
|
-
import { ValueOP } from '../../../constant';
|
|
5
4
|
import { SearchBarFilterController } from './search-bar-filter.controller';
|
|
6
|
-
/** 不需要编辑器的OP */
|
|
7
|
-
export const ExcludeOPs = [
|
|
8
|
-
ValueOP.IS_NULL,
|
|
9
|
-
ValueOP.IS_NOT_NULL,
|
|
10
|
-
];
|
|
11
5
|
const SubFieldRegex = /^N_(.\w+)_(.\w+)$/; // N_USER_ID_EQ格式字符串中的USER_ID和EQ
|
|
12
6
|
/**
|
|
13
7
|
* 搜索栏过滤项ITEMS控制器
|
|
@@ -36,6 +30,7 @@ export class SearchBarFilterItemsController extends SearchBarFilterController {
|
|
|
36
30
|
* @type {Map<string, SearchBarFilterController>}
|
|
37
31
|
*/
|
|
38
32
|
this.subFilterCMap = new Map();
|
|
33
|
+
this.type = 'ITEMS';
|
|
39
34
|
}
|
|
40
35
|
/**
|
|
41
36
|
* 计算标识
|
|
@@ -93,18 +88,25 @@ export class SearchBarFilterItemsController extends SearchBarFilterController {
|
|
|
93
88
|
const matches = subStr.match(SubFieldRegex);
|
|
94
89
|
const subField = matches[1];
|
|
95
90
|
const subOP = matches[2];
|
|
91
|
+
// 修改子项的模型,创建控制器
|
|
92
|
+
const cloneItem = clone(item);
|
|
93
|
+
cloneItem.defsearchMode.valueOP = subOP;
|
|
94
|
+
cloneItem.id = subField;
|
|
95
|
+
const filterC = new SearchBarFilterController(cloneItem, this.appDataEntity, this.context, this.params);
|
|
96
|
+
this.subFilterCMap.set(this.calcKey(subField, subOP), filterC);
|
|
97
|
+
// 隐藏的直接不设置
|
|
98
|
+
if (filterC.hidden) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
96
101
|
if (!fieldMap.has(subField)) {
|
|
97
102
|
fieldMap.set(subField, {
|
|
98
103
|
name: subField,
|
|
99
104
|
label: '',
|
|
100
105
|
valueOPs: [],
|
|
106
|
+
fieldName: subField,
|
|
101
107
|
});
|
|
102
108
|
}
|
|
103
109
|
fieldMap.get(subField).valueOPs.push(subOP);
|
|
104
|
-
// 修改子项的模型
|
|
105
|
-
const cloneItem = clone(item);
|
|
106
|
-
cloneItem.defsearchMode.valueOP = subOP;
|
|
107
|
-
this.subFilterCMap.set(this.calcKey(subField, subOP), new SearchBarFilterController(cloneItem, this.appDataEntity, this.context, this.params));
|
|
108
110
|
});
|
|
109
111
|
(_a = this.minorAppDE.appDEFields) === null || _a === void 0 ? void 0 : _a.forEach(item => {
|
|
110
112
|
const codeName = item.codeName.toUpperCase();
|
|
@@ -119,6 +121,7 @@ export class SearchBarFilterItemsController extends SearchBarFilterController {
|
|
|
119
121
|
async init() {
|
|
120
122
|
await this.initMinorAppDE();
|
|
121
123
|
await this.initAllFields();
|
|
124
|
+
this.hidden = Array.from(this.subFilterCMap.values()).every(item => item.hidden);
|
|
122
125
|
}
|
|
123
126
|
/**
|
|
124
127
|
* 获取子搜索栏控制器
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { IAppDataEntity, ISearchBarFilter } from '@ibiz/model-core';
|
|
2
|
+
import { SearchBarFilterController } from './search-bar-filter.controller';
|
|
3
|
+
import { IFilterNode } from '../../../interface';
|
|
4
|
+
/**
|
|
5
|
+
* 搜索栏过滤项ITEMS控制器
|
|
6
|
+
* @author lxm
|
|
7
|
+
* @date 2023-10-12 05:49:19
|
|
8
|
+
* @export
|
|
9
|
+
* @class SearchBarFilterController
|
|
10
|
+
* @implements {IEditorContainerController}
|
|
11
|
+
*/
|
|
12
|
+
export declare class SearchBarFilterSimpleItemsController extends SearchBarFilterController {
|
|
13
|
+
/**
|
|
14
|
+
* 过滤的属性名称(有实体属性的是属性codeName小写,没有就是项名称)
|
|
15
|
+
* @author lxm
|
|
16
|
+
* @date 2023-10-13 02:51:39
|
|
17
|
+
* @type {string}
|
|
18
|
+
*/
|
|
19
|
+
subFieldName: string;
|
|
20
|
+
/**
|
|
21
|
+
* 配置的属性搜索模式对应的值操作
|
|
22
|
+
* @author lxm
|
|
23
|
+
* @date 2023-10-13 03:22:10
|
|
24
|
+
* @type {string}
|
|
25
|
+
*/
|
|
26
|
+
subValueOP: string;
|
|
27
|
+
constructor(filterModel: ISearchBarFilter, appDataEntity: IAppDataEntity, context: IContext, params: IParams);
|
|
28
|
+
/**
|
|
29
|
+
* 简单模式下添加节点逻辑
|
|
30
|
+
* @author lxm
|
|
31
|
+
* @date 2024-04-07 05:44:47
|
|
32
|
+
* @param {IFilterNodeField} node
|
|
33
|
+
* @return {*} {void}
|
|
34
|
+
*/
|
|
35
|
+
addSimpleFilterNode(node: IFilterNode): void;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=search-bar-filter-simple-items.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-bar-filter-simple-items.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/search-bar/search-bar-filter-simple-items.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAoB,MAAM,oBAAoB,CAAC;AAGnE;;;;;;;GAOG;AACH,qBAAa,oCAAqC,SAAQ,yBAAyB;IACjF;;;;;OAKG;IACH,YAAY,EAAG,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,UAAU,EAAG,MAAM,CAAC;gBAGlB,WAAW,EAAE,gBAAgB,EAC7B,aAAa,EAAE,cAAc,EAC7B,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,OAAO;IAYjB;;;;;;OAMG;IACH,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;CAgB7C"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/* eslint-disable prefer-destructuring */
|
|
2
|
+
/* eslint-disable no-template-curly-in-string */
|
|
3
|
+
import { SearchBarFilterController } from './search-bar-filter.controller';
|
|
4
|
+
import { parseSubFieldInfo } from './util';
|
|
5
|
+
/**
|
|
6
|
+
* 搜索栏过滤项ITEMS控制器
|
|
7
|
+
* @author lxm
|
|
8
|
+
* @date 2023-10-12 05:49:19
|
|
9
|
+
* @export
|
|
10
|
+
* @class SearchBarFilterController
|
|
11
|
+
* @implements {IEditorContainerController}
|
|
12
|
+
*/
|
|
13
|
+
export class SearchBarFilterSimpleItemsController extends SearchBarFilterController {
|
|
14
|
+
constructor(filterModel, appDataEntity, context, params) {
|
|
15
|
+
super(filterModel, appDataEntity, context, params);
|
|
16
|
+
this.noEditor = false;
|
|
17
|
+
// simple每个都是唯一的
|
|
18
|
+
this.key = this.model.id;
|
|
19
|
+
this.type = 'SIMPLE_ITEMS';
|
|
20
|
+
const info = parseSubFieldInfo(filterModel.defsearchMode.codeName);
|
|
21
|
+
this.subFieldName = info.field;
|
|
22
|
+
this.subValueOP = info.op;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* 简单模式下添加节点逻辑
|
|
26
|
+
* @author lxm
|
|
27
|
+
* @date 2024-04-07 05:44:47
|
|
28
|
+
* @param {IFilterNodeField} node
|
|
29
|
+
* @return {*} {void}
|
|
30
|
+
*/
|
|
31
|
+
addSimpleFilterNode(node) {
|
|
32
|
+
Object.assign(node, {
|
|
33
|
+
simple: true,
|
|
34
|
+
field: this.fieldName,
|
|
35
|
+
nodeType: 'ITEMS',
|
|
36
|
+
valueOP: this.valueOP,
|
|
37
|
+
children: [
|
|
38
|
+
{
|
|
39
|
+
nodeType: 'FIELD',
|
|
40
|
+
field: this.subFieldName,
|
|
41
|
+
valueOP: this.subValueOP,
|
|
42
|
+
value: null,
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IAppDataEntity, ISearchBarFilter } from '@ibiz/model-core';
|
|
2
|
-
import { IEditorContainerController, IEditorController, IEditorProvider,
|
|
2
|
+
import { IEditorContainerController, IEditorController, IEditorProvider, IFilterNodeField } from '../../../interface';
|
|
3
3
|
/** 不需要编辑器的OP */
|
|
4
4
|
export declare const ExcludeOPs: string[];
|
|
5
5
|
export interface ISearchFilterContainer {
|
|
@@ -23,6 +23,7 @@ export declare class SearchBarFilterController implements IEditorContainerContro
|
|
|
23
23
|
unitName: string | undefined;
|
|
24
24
|
valueFormat: string | undefined;
|
|
25
25
|
dataType: number | undefined;
|
|
26
|
+
hidden: boolean | undefined;
|
|
26
27
|
/**
|
|
27
28
|
* 编辑器控制器
|
|
28
29
|
*
|
|
@@ -38,6 +39,13 @@ export declare class SearchBarFilterController implements IEditorContainerContro
|
|
|
38
39
|
* @date 2022-08-24 20:08:42
|
|
39
40
|
*/
|
|
40
41
|
editorProvider?: IEditorProvider;
|
|
42
|
+
/**
|
|
43
|
+
* 唯一标识,作为第一个下拉的时候的唯一判断,默认是fieldName
|
|
44
|
+
* @author lxm
|
|
45
|
+
* @date 2024-04-10 02:10:00
|
|
46
|
+
* @type {string}
|
|
47
|
+
*/
|
|
48
|
+
key: string;
|
|
41
49
|
/**
|
|
42
50
|
* 过滤的属性名称(有实体属性的是属性codeName小写,没有就是项名称)
|
|
43
51
|
* @author lxm
|
|
@@ -66,6 +74,13 @@ export declare class SearchBarFilterController implements IEditorContainerContro
|
|
|
66
74
|
* @type {boolean}
|
|
67
75
|
*/
|
|
68
76
|
noEditor: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* 控制器类型
|
|
79
|
+
* @author lxm
|
|
80
|
+
* @date 2024-04-10 01:41:40
|
|
81
|
+
* @type {('ITEMS' | 'SIMPLE_ITEMS' | 'FIELD')}
|
|
82
|
+
*/
|
|
83
|
+
type: 'ITEMS' | 'SIMPLE_ITEMS' | 'FIELD';
|
|
69
84
|
/**
|
|
70
85
|
* 值项
|
|
71
86
|
* @author lxm
|
|
@@ -86,10 +101,10 @@ export declare class SearchBarFilterController implements IEditorContainerContro
|
|
|
86
101
|
* 计算要递给编辑器的参数
|
|
87
102
|
* @author lxm
|
|
88
103
|
* @date 2024-02-04 06:35:28
|
|
89
|
-
* @param {
|
|
104
|
+
* @param {IFilterNodeField} node
|
|
90
105
|
* @return {*} {{ value: unknown; data: IData }}
|
|
91
106
|
*/
|
|
92
|
-
calcEditorProps(node:
|
|
107
|
+
calcEditorProps(node: IFilterNodeField): {
|
|
93
108
|
value: unknown;
|
|
94
109
|
data: IData;
|
|
95
110
|
};
|
|
@@ -97,10 +112,10 @@ export declare class SearchBarFilterController implements IEditorContainerContro
|
|
|
97
112
|
* 编辑器值变更处理
|
|
98
113
|
* @author lxm
|
|
99
114
|
* @date 2024-02-04 06:42:04
|
|
100
|
-
* @param {
|
|
115
|
+
* @param {IFilterNodeField} node
|
|
101
116
|
* @param {unknown} value
|
|
102
117
|
* @param {string} [name]
|
|
103
118
|
*/
|
|
104
|
-
onEditorChange(node:
|
|
119
|
+
onEditorChange(node: IFilterNodeField, value: unknown, name?: string): void;
|
|
105
120
|
}
|
|
106
121
|
//# sourceMappingURL=search-bar-filter.controller.d.ts.map
|
|
@@ -1 +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":"AAEA,OAAO,EAEL,cAAc,EACd,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"search-bar-filter.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/search-bar/search-bar-filter.controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,cAAc,EACd,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAM5B,gBAAgB;AAChB,eAAO,MAAM,UAAU,EAAE,MAAM,EAKrB,CAAC;AAIX,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,QAAQ,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,cAAc,CAAC;CAC/B;AAED;;;;;;;GAOG;AACH,qBAAa,yBAA0B,YAAW,0BAA0B;IAsFjE,KAAK,EAAE,gBAAgB;IACvB,aAAa,EAAE,cAAc;IAC7B,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,OAAO;IAxFxB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAE7B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAE7B,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAE5B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAE3B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,eAAe,CAAC;IAEjC;;;;;OAKG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,QAAQ,EAAE,OAAO,CAAS;IAE1B;;;;;OAKG;IACH,IAAI,EAAE,OAAO,GAAG,cAAc,GAAG,OAAO,CAAW;IAEnD;;;;;;OAMG;IACH,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;gBAGQ,KAAK,EAAE,gBAAgB,EACvB,aAAa,EAAE,cAAc,EAC7B,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,OAAO;IAyBxB;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B;;;;;;OAMG;IACH,eAAe,CAAC,IAAI,EAAE,gBAAgB,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,KAAK,CAAA;KAAE;IAexE;;;;;;;OAOG;IACH,cAAc,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;CAO5E"}
|
|
@@ -3,6 +3,7 @@ import { RuntimeModelError } from '@ibiz-template/core';
|
|
|
3
3
|
import { findFieldById } from '../../../model';
|
|
4
4
|
import { getEditorProvider } from '../../../register';
|
|
5
5
|
import { ValueOP } from '../../../constant';
|
|
6
|
+
import { isHiddenFilter } from './util';
|
|
6
7
|
/** 不需要编辑器的OP */
|
|
7
8
|
export const ExcludeOPs = [
|
|
8
9
|
ValueOP.IS_NULL,
|
|
@@ -43,12 +44,22 @@ export class SearchBarFilterController {
|
|
|
43
44
|
* @type {boolean}
|
|
44
45
|
*/
|
|
45
46
|
this.noEditor = false;
|
|
47
|
+
/**
|
|
48
|
+
* 控制器类型
|
|
49
|
+
* @author lxm
|
|
50
|
+
* @date 2024-04-10 01:41:40
|
|
51
|
+
* @type {('ITEMS' | 'SIMPLE_ITEMS' | 'FIELD')}
|
|
52
|
+
*/
|
|
53
|
+
this.type = 'FIELD';
|
|
54
|
+
// 设置是否是隐藏
|
|
55
|
+
this.hidden = isHiddenFilter(model);
|
|
46
56
|
// 实体属性
|
|
47
57
|
let field;
|
|
48
58
|
if (model.appDEFieldId) {
|
|
49
59
|
field = findFieldById(this.appDataEntity, model.appDEFieldId);
|
|
50
60
|
}
|
|
51
61
|
this.fieldName = field ? field.codeName.toLowerCase() : model.id;
|
|
62
|
+
this.key = this.fieldName;
|
|
52
63
|
// 属性标题
|
|
53
64
|
this.label = model.caption || (field === null || field === void 0 ? void 0 : field.logicName) || model.id;
|
|
54
65
|
this.valueOP = (_a = model.defsearchMode) === null || _a === void 0 ? void 0 : _a.valueOP;
|
|
@@ -79,7 +90,7 @@ export class SearchBarFilterController {
|
|
|
79
90
|
* 计算要递给编辑器的参数
|
|
80
91
|
* @author lxm
|
|
81
92
|
* @date 2024-02-04 06:35:28
|
|
82
|
-
* @param {
|
|
93
|
+
* @param {IFilterNodeField} node
|
|
83
94
|
* @return {*} {{ value: unknown; data: IData }}
|
|
84
95
|
*/
|
|
85
96
|
calcEditorProps(node) {
|
|
@@ -98,7 +109,7 @@ export class SearchBarFilterController {
|
|
|
98
109
|
* 编辑器值变更处理
|
|
99
110
|
* @author lxm
|
|
100
111
|
* @date 2024-02-04 06:42:04
|
|
101
|
-
* @param {
|
|
112
|
+
* @param {IFilterNodeField} node
|
|
102
113
|
* @param {unknown} value
|
|
103
114
|
* @param {string} [name]
|
|
104
115
|
*/
|