@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.
Files changed (97) hide show
  1. package/dist/index.esm.js +1006 -338
  2. package/dist/index.system.min.js +1 -1
  3. package/out/app-hub.d.ts +7 -0
  4. package/out/app-hub.d.ts.map +1 -1
  5. package/out/app-hub.js +11 -0
  6. package/out/application.d.ts +7 -0
  7. package/out/application.d.ts.map +1 -1
  8. package/out/application.js +9 -0
  9. package/out/controller/common/control/md-control.controller.d.ts.map +1 -1
  10. package/out/controller/common/control/md-control.controller.js +3 -0
  11. package/out/controller/control/chart/chart.controller.d.ts +38 -0
  12. package/out/controller/control/chart/chart.controller.d.ts.map +1 -1
  13. package/out/controller/control/chart/chart.controller.js +183 -0
  14. package/out/controller/control/chart/generator/base-series-generator.js +1 -1
  15. package/out/controller/control/form/form/form.controller.d.ts.map +1 -1
  16. package/out/controller/control/form/form/form.controller.js +4 -3
  17. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.state.d.ts +2 -2
  18. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.state.d.ts.map +1 -1
  19. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.state.js +2 -2
  20. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.controller.d.ts +32 -1
  21. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.controller.d.ts.map +1 -1
  22. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.controller.js +63 -0
  23. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.state.d.ts +12 -0
  24. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.state.d.ts.map +1 -0
  25. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.state.js +13 -0
  26. package/out/controller/control/search-bar/index.d.ts +3 -1
  27. package/out/controller/control/search-bar/index.d.ts.map +1 -1
  28. package/out/controller/control/search-bar/index.js +3 -1
  29. package/out/controller/control/search-bar/interface-util.d.ts +75 -0
  30. package/out/controller/control/search-bar/interface-util.d.ts.map +1 -0
  31. package/out/controller/control/search-bar/interface-util.js +274 -0
  32. package/out/controller/control/search-bar/search-bar-filter-items.controller.d.ts +1 -2
  33. package/out/controller/control/search-bar/search-bar-filter-items.controller.d.ts.map +1 -1
  34. package/out/controller/control/search-bar/search-bar-filter-items.controller.js +13 -10
  35. package/out/controller/control/search-bar/search-bar-filter-simple-items.controller.d.ts +37 -0
  36. package/out/controller/control/search-bar/search-bar-filter-simple-items.controller.d.ts.map +1 -0
  37. package/out/controller/control/search-bar/search-bar-filter-simple-items.controller.js +47 -0
  38. package/out/controller/control/search-bar/search-bar-filter.controller.d.ts +20 -5
  39. package/out/controller/control/search-bar/search-bar-filter.controller.d.ts.map +1 -1
  40. package/out/controller/control/search-bar/search-bar-filter.controller.js +13 -2
  41. package/out/controller/control/search-bar/search-bar.controller.d.ts +15 -2
  42. package/out/controller/control/search-bar/search-bar.controller.d.ts.map +1 -1
  43. package/out/controller/control/search-bar/search-bar.controller.js +80 -30
  44. package/out/controller/control/search-bar/util.d.ts +35 -0
  45. package/out/controller/control/search-bar/util.d.ts.map +1 -0
  46. package/out/controller/control/search-bar/util.js +45 -0
  47. package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts +7 -0
  48. package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts.map +1 -1
  49. package/out/interface/common/i-app-service/i-app-service.d.ts +7 -0
  50. package/out/interface/common/i-app-service/i-app-service.d.ts.map +1 -1
  51. package/out/interface/controller/controller/control/i-app-menu.controller.d.ts +8 -1
  52. package/out/interface/controller/controller/control/i-app-menu.controller.d.ts.map +1 -1
  53. package/out/interface/controller/state/control/i-chart.state.d.ts +28 -0
  54. package/out/interface/controller/state/control/i-chart.state.d.ts.map +1 -1
  55. package/out/interface/controller/state/control/i-md-control.state.d.ts +4 -0
  56. package/out/interface/controller/state/control/i-md-control.state.d.ts.map +1 -1
  57. package/out/interface/controller/state/control/index.d.ts +1 -1
  58. package/out/interface/controller/state/control/index.d.ts.map +1 -1
  59. package/out/interface/controller/state/control/index.js +1 -1
  60. package/out/interface/controller/state/control/search-bar/i-filter-node.d.ts +157 -0
  61. package/out/interface/controller/state/control/search-bar/i-filter-node.d.ts.map +1 -0
  62. package/out/interface/controller/state/control/search-bar/i-quick-search.d.ts +24 -0
  63. package/out/interface/controller/state/control/search-bar/i-quick-search.d.ts.map +1 -0
  64. package/out/interface/controller/state/control/search-bar/i-quick-search.js +1 -0
  65. package/out/interface/controller/state/control/search-bar/i-search-bar-group.d.ts +89 -0
  66. package/out/interface/controller/state/control/search-bar/i-search-bar-group.d.ts.map +1 -0
  67. package/out/interface/controller/state/control/search-bar/i-search-bar-group.js +1 -0
  68. package/out/interface/controller/state/control/search-bar/i-search-bar.state.d.ts +78 -0
  69. package/out/interface/controller/state/control/search-bar/i-search-bar.state.d.ts.map +1 -0
  70. package/out/interface/controller/state/control/search-bar/i-search-bar.state.js +1 -0
  71. package/out/interface/controller/state/control/search-bar/i-search-cond-ex.d.ts +65 -0
  72. package/out/interface/controller/state/control/search-bar/i-search-cond-ex.d.ts.map +1 -0
  73. package/out/interface/controller/state/control/search-bar/i-search-cond-ex.js +1 -0
  74. package/out/interface/controller/state/control/search-bar/i-search-cond.d.ts +43 -0
  75. package/out/interface/controller/state/control/search-bar/i-search-cond.d.ts.map +1 -0
  76. package/out/interface/controller/state/control/search-bar/i-search-cond.js +1 -0
  77. package/out/interface/controller/state/control/search-bar/index.d.ts +7 -0
  78. package/out/interface/controller/state/control/search-bar/index.d.ts.map +1 -0
  79. package/out/interface/controller/state/control/search-bar/index.js +1 -0
  80. package/out/service/service/code-list/code-list.service.d.ts +14 -0
  81. package/out/service/service/code-list/code-list.service.d.ts.map +1 -1
  82. package/out/service/service/code-list/code-list.service.js +39 -0
  83. package/out/service/service/control/md-control.service.d.ts.map +1 -1
  84. package/out/service/service/control/md-control.service.js +3 -0
  85. package/out/service/service/counter/counter.service.d.ts.map +1 -1
  86. package/out/service/service/counter/counter.service.js +5 -1
  87. package/out/service/utils/app-counter/app-counter.js +1 -1
  88. package/out/service/utils/dynamic-code-list/dynamic-code-list.d.ts +81 -0
  89. package/out/service/utils/dynamic-code-list/dynamic-code-list.d.ts.map +1 -1
  90. package/out/service/utils/dynamic-code-list/dynamic-code-list.js +127 -2
  91. package/package.json +2 -2
  92. package/out/controller/control/search-bar/use-searchcond.d.ts +0 -33
  93. package/out/controller/control/search-bar/use-searchcond.d.ts.map +0 -1
  94. package/out/controller/control/search-bar/use-searchcond.js +0 -117
  95. package/out/interface/controller/state/control/i-search-bar.state.d.ts +0 -224
  96. package/out/interface/controller/state/control/i-search-bar.state.d.ts.map +0 -1
  97. /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 './use-searchcond';
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;AAIpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,gBAAgB;AAChB,eAAO,MAAM,UAAU,EAAE,MAAM,EAGrB,CAAC;AAIX,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,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;IAKjB;;;;;;;;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;IA6CxC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B;;;;;;;OAOG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,yBAAyB;CAG7E"}
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, IFilterLeafNode } from '../../../interface';
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 {IFilterLeafNode} node
104
+ * @param {IFilterNodeField} node
90
105
  * @return {*} {{ value: unknown; data: IData }}
91
106
  */
92
- calcEditorProps(node: IFilterLeafNode): {
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 {IFilterLeafNode} node
115
+ * @param {IFilterNodeField} node
101
116
  * @param {unknown} value
102
117
  * @param {string} [name]
103
118
  */
104
- onEditorChange(node: IFilterLeafNode, value: unknown, name?: string): void;
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,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAK5B,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;IAoEjE,KAAK,EAAE,gBAAgB;IACvB,aAAa,EAAE,cAAc;IAC7B,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,OAAO;IAtExB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAE7B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC,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;IAEjB;;;;;OAKG;IACH,QAAQ,EAAE,OAAO,CAAS;IAE1B;;;;;;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;IAqBxB;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B;;;;;;OAMG;IACH,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,KAAK,CAAA;KAAE;IAevE;;;;;;;OAOG;IACH,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;CAO3E"}
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 {IFilterLeafNode} node
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 {IFilterLeafNode} node
112
+ * @param {IFilterNodeField} node
102
113
  * @param {unknown} value
103
114
  * @param {string} [name]
104
115
  */