@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.
Files changed (42) hide show
  1. package/dist/index.esm.js +363 -70
  2. package/dist/index.system.min.js +1 -1
  3. package/dist/index.system.min.js.map +1 -1
  4. package/out/constant/index.d.ts +1 -0
  5. package/out/constant/index.d.ts.map +1 -1
  6. package/out/constant/index.js +1 -0
  7. package/out/constant/value-op.d.ts +82 -0
  8. package/out/constant/value-op.d.ts.map +1 -0
  9. package/out/constant/value-op.js +83 -0
  10. package/out/controller/control/form/search-form/search-form.controller.d.ts +2 -2
  11. package/out/controller/control/form/search-form/search-form.controller.d.ts.map +1 -1
  12. package/out/controller/control/form/search-form/search-form.controller.js +11 -3
  13. package/out/controller/control/md-ctrl/md-ctrl.controller.d.ts +38 -3
  14. package/out/controller/control/md-ctrl/md-ctrl.controller.d.ts.map +1 -1
  15. package/out/controller/control/md-ctrl/md-ctrl.controller.js +110 -3
  16. package/out/controller/control/search-bar/search-bar-filter.controller.d.ts +65 -0
  17. package/out/controller/control/search-bar/search-bar-filter.controller.d.ts.map +1 -0
  18. package/out/controller/control/search-bar/search-bar-filter.controller.js +48 -0
  19. package/out/controller/control/search-bar/search-bar.controller.d.ts +63 -4
  20. package/out/controller/control/search-bar/search-bar.controller.d.ts.map +1 -1
  21. package/out/controller/control/search-bar/search-bar.controller.js +143 -9
  22. package/out/engine/md-view.engine.d.ts.map +1 -1
  23. package/out/engine/md-view.engine.js +2 -23
  24. package/out/interface/controller/controller/control/i-search-bar.controller.d.ts +8 -0
  25. package/out/interface/controller/controller/control/i-search-bar.controller.d.ts.map +1 -1
  26. package/out/interface/controller/controller/control/i-search-form.controller.d.ts +2 -2
  27. package/out/interface/controller/controller/control/i-search-form.controller.d.ts.map +1 -1
  28. package/out/interface/controller/state/control/i-search-bar.state.d.ts +75 -0
  29. package/out/interface/controller/state/control/i-search-bar.state.d.ts.map +1 -1
  30. package/out/service/service/entity/method/method.js +2 -2
  31. package/package.json +3 -3
  32. package/src/constant/index.ts +1 -0
  33. package/src/constant/value-op.ts +82 -0
  34. package/src/controller/control/form/search-form/search-form.controller.ts +11 -3
  35. package/src/controller/control/md-ctrl/md-ctrl.controller.ts +136 -3
  36. package/src/controller/control/search-bar/search-bar-filter.controller.ts +112 -0
  37. package/src/controller/control/search-bar/search-bar.controller.ts +165 -9
  38. package/src/engine/md-view.engine.ts +2 -27
  39. package/src/interface/controller/controller/control/i-search-bar.controller.ts +10 -1
  40. package/src/interface/controller/controller/control/i-search-form.controller.ts +2 -2
  41. package/src/interface/controller/state/control/i-search-bar.state.ts +86 -0
  42. package/src/service/service/entity/method/method.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"search-bar.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/search-bar/search-bar.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,eAAe,EACf,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;;;;;GAQG;AACH,qBAAa,mBACX,SAAQ,iBAAiB,CAAC,UAAU,EAAE,eAAe,EAAE,eAAe,CACtE,YAAW,oBAAoB;IAE/B;;;;;OAKG;IACH,WAAW,SAAM;IAEjB,SAAS,CAAC,SAAS,IAAI,IAAI;cAWX,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IA6B1C;;;;;;OAMG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI9B;;;;;OAKG;IACH,YAAY,IAAI,IAAI;CAGrB"}
1
+ {"version":3,"file":"search-bar.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/search-bar/search-bar.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EACL,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E;;;;;;;;GAQG;AACH,qBAAa,mBACX,SAAQ,iBAAiB,CAAC,UAAU,EAAE,eAAe,EAAE,eAAe,CACtE,YAAW,oBAAoB;IAE/B;;;;;OAKG;IACH,WAAW,SAAM;IAEjB;;;;;OAKG;IACH,iBAAiB,EAAE,yBAAyB,EAAE,CAAM;IAEpD;;;;;OAKG;IACH,aAAa,EAAG,cAAc,CAAC;IAE/B,SAAS,CAAC,SAAS,IAAI,IAAI;cAcX,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAc1C;;;;;;OAMG;IACH,SAAS,CAAC,0BAA0B,IAAI,IAAI;IA2B5C;;;;;;OAMG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI9B;;;;;OAKG;IACH,QAAQ,IAAI,IAAI;IAIhB;;;;;OAKG;IACH,eAAe,IAAI,OAAO;IAwB1B;;;;OAIG;IACH,WAAW,IAAI,IAAI;IAUnB;;;;;;OAMG;cACa,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAYrD;;;;;OAKG;IACH,WAAW,IAAI,KAAK,GAAG,SAAS;IAsBhC;;;;;;OAMG;IACH,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,KAAK;CAcxC"}
@@ -1,4 +1,7 @@
1
+ import { recursiveIterate } from '@ibiz-template/core';
2
+ import { isNil } from 'ramda';
1
3
  import { ControlController } from '../../common';
4
+ import { SearchBarFilterController } from './search-bar-filter.controller';
2
5
  /**
3
6
  * 搜索栏控制器
4
7
  *
@@ -12,12 +15,19 @@ export class SearchBarController extends ControlController {
12
15
  constructor() {
13
16
  super(...arguments);
14
17
  /**
15
- * 占位符
18
+ * 快速搜索占位符
16
19
  * @return {*}
17
20
  * @author: zhujiamin
18
21
  * @Date: 2023-08-11 14:13:10
19
22
  */
20
23
  this.placeHolder = '';
24
+ /**
25
+ * 过滤项控制器集合
26
+ * @author lxm
27
+ * @date 2023-10-13 03:31:26
28
+ * @type {SearchBarFilterController[]}
29
+ */
30
+ this.filterControllers = [];
21
31
  }
22
32
  initState() {
23
33
  super.initState();
@@ -26,21 +36,40 @@ export class SearchBarController extends ControlController {
26
36
  this.state.visible = !!(this.model.enableQuickSearch ||
27
37
  this.model.enableGroup ||
28
38
  this.model.enableFilter);
39
+ if (this.model.enableFilter) {
40
+ this.resetFilter();
41
+ }
29
42
  }
30
43
  async onCreated() {
31
- var _a;
32
44
  await super.onCreated();
33
45
  const appDataEntity = await ibiz.hub.getAppDataEntity(this.model.appDataEntityId, this.context.srfappid);
34
46
  if (appDataEntity) {
35
- const searchFields = (_a = appDataEntity.appDEFields) === null || _a === void 0 ? void 0 : _a.filter(field => {
36
- return field.enableQuickSearch;
37
- });
47
+ this.appDataEntity = appDataEntity;
48
+ this.calcQuickSearchPlaceholder();
49
+ }
50
+ await this.initSearchBarFilters();
51
+ }
52
+ /**
53
+ * 计算快速搜索的占位
54
+ * @author lxm
55
+ * @date 2023-10-16 03:49:47
56
+ * @protected
57
+ * @return {*} {void}
58
+ */
59
+ calcQuickSearchPlaceholder() {
60
+ if (!this.appDataEntity) {
61
+ return;
62
+ }
63
+ const searchFields = this.appDataEntity.appDEFields.filter(field => {
64
+ return field.enableQuickSearch;
65
+ });
66
+ if (searchFields.length) {
38
67
  const placeHolders = [];
39
- searchFields === null || searchFields === void 0 ? void 0 : searchFields.forEach(searchField => {
40
- if ((searchField === null || searchField === void 0 ? void 0 : searchField.lnlanguageRes) && searchField.lnlanguageRes.lanResTag) {
68
+ searchFields.forEach(searchField => {
69
+ if (searchField.lnlanguageRes && searchField.lnlanguageRes.lanResTag) {
41
70
  placeHolders.push(ibiz.i18n.t(searchField.lnlanguageRes.lanResTag, searchField.logicName));
42
71
  }
43
- else if (searchField === null || searchField === void 0 ? void 0 : searchField.logicName) {
72
+ else if (searchField.logicName) {
44
73
  placeHolders.push(searchField.logicName);
45
74
  }
46
75
  });
@@ -65,7 +94,112 @@ export class SearchBarController extends ControlController {
65
94
  * @author: zhujiamin
66
95
  * @Date: 2023-06-01 18:08:18
67
96
  */
68
- handleSearch() {
97
+ onSearch() {
69
98
  this.evt.emit('onSearch', undefined);
70
99
  }
100
+ /**
101
+ * 获取搜索栏的过滤参数(包括快速搜索,快速分组和过滤器的参数)
102
+ * @author lxm
103
+ * @date 2023-10-16 03:54:07
104
+ * @return {*} {IParams}
105
+ */
106
+ getFilterParams() {
107
+ var _a;
108
+ const params = {};
109
+ // 快速搜索
110
+ if (this.state.query) {
111
+ params.query = this.state.query;
112
+ }
113
+ // 快速分组
114
+ if ((_a = this.state.selectedGroupItem) === null || _a === void 0 ? void 0 : _a.data) {
115
+ // eslint-disable-next-line no-new-func
116
+ const func = new Function(`return (${this.state.selectedGroupItem.data});`);
117
+ const addParams = func();
118
+ Object.assign(params, addParams);
119
+ }
120
+ // 搜索过滤器
121
+ const filters = this.calcFilters();
122
+ if (filters) {
123
+ params.filters = filters;
124
+ }
125
+ return params;
126
+ }
127
+ /**
128
+ * 重置过滤器
129
+ * @author lxm
130
+ * @date 2023-10-16 03:52:44
131
+ */
132
+ resetFilter() {
133
+ this.state.filterNodes = [
134
+ {
135
+ leaf: false,
136
+ logicType: 'AND',
137
+ children: [{ leaf: true, field: null, valueOP: null, value: null }],
138
+ },
139
+ ];
140
+ }
141
+ /**
142
+ * 初始化过滤项控制器
143
+ * @author lxm
144
+ * @date 2023-10-13 03:33:17
145
+ * @protected
146
+ * @return {*} {Promise<void>}
147
+ */
148
+ async initSearchBarFilters() {
149
+ var _a;
150
+ if ((_a = this.model.searchBarFilters) === null || _a === void 0 ? void 0 : _a.length) {
151
+ this.model.searchBarFilters.forEach(item => {
152
+ const filterController = new SearchBarFilterController(item, this);
153
+ this.filterControllers.push(filterController);
154
+ });
155
+ await Promise.all(this.filterControllers.map(controller => controller.init()));
156
+ }
157
+ }
158
+ /**
159
+ * 计算过滤项参数
160
+ * @author lxm
161
+ * @date 2023-10-13 05:53:35
162
+ * @return {*} {IData}
163
+ */
164
+ calcFilters() {
165
+ if (!this.model.enableFilter) {
166
+ return;
167
+ }
168
+ let hasFilter = false; // 是否有过滤项
169
+ let hasError = false; // 是否有过滤项格式不正确
170
+ recursiveIterate(this.state.filterNodes[0], (node) => {
171
+ if (node.leaf) {
172
+ if (node.field && node.valueOP && !isNil(node.value)) {
173
+ hasFilter = true;
174
+ }
175
+ else {
176
+ // 如果过滤项不给
177
+ hasError = true;
178
+ }
179
+ }
180
+ });
181
+ if (hasFilter && !hasError) {
182
+ const filter = this.formatFilters(this.state.filterNodes[0]);
183
+ return filter;
184
+ }
185
+ }
186
+ /**
187
+ * 格式化过滤项
188
+ * @author lxm
189
+ * @date 2023-10-16 03:45:41
190
+ * @param {IFilterNode} node
191
+ * @return {*} {IData}
192
+ */
193
+ formatFilters(node) {
194
+ if (!node.leaf) {
195
+ return {
196
+ [`$${node.logicType.toLowerCase()}`]: node.children.map(item => this.formatFilters(item)),
197
+ };
198
+ }
199
+ return {
200
+ [`${node.field}`]: {
201
+ [`$${node.valueOP.toLowerCase()}`]: node.value,
202
+ },
203
+ };
204
+ }
71
205
  }
@@ -1 +1 @@
1
- {"version":3,"file":"md-view.engine.d.ts","sourceRoot":"","sources":["../../src/engine/md-view.engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,SAAS,EACV,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;;;;;GAOG;AACH,qBAAa,YAAa,SAAQ,cAAc;IAC9C,UAAkB,IAAI,EAAE,cAAc,CACpC,mBAAmB,EACnB,YAAY,EACZ,YAAY,CACb,CAAC;IAEF;;;;;;OAMG;IACH,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED;;;;;OAKG;IACH,SAAS,KAAK,UAAU,IAAI,qBAAqB,CAEhD;IAED;;;;;OAKG;IACH,SAAS,KAAK,SAAS,IAAI,oBAAoB,CAE9C;IAED;;;;;;OAMG;IACH,SAAS,KAAK,YAAY,IAAI,oBAAoB,CAIjD;IAEK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAc1B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAsDhC;;;;;;;OAOG;cACa,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;IAwCrE,SAAS,CAAC,OAAO,IAAI,KAAK,EAAE;IAI5B;;;;;;;;OAQG;cACa,QAAQ,CAAC,IAAI,EAAE;QAC7B,IAAI,EAAE,KAAK,EAAE,CAAC;QACd,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,OAAO,CAAC,EAAE,QAAQ,CAAC;QACnB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BjB;;;;;;;;OAQG;cACa,OAAO,CAAC,IAAI,EAAE;QAC5B,IAAI,EAAE,KAAK,EAAE,CAAC;QACd,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BjB;;;;;;OAMG;cACa,MAAM,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5E;;;;;OAKG;cACa,IAAI,CAAC,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE;;;;;OAKG;cACa,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC;;;;;OAKG;cACa,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvC;;;;;OAKG;IACH,SAAS,CAAC,eAAe,IAAI,OAAO;IAsCpC;;;;;OAKG;cACa,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3C;;;;;;OAMG;cACa,UAAU,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAItE;;;;;;OAMG;IACG,IAAI,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,UAAU,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAItE,SAAS,CAAC,qBAAqB,IAAI,OAAO;IAc1C;;;;;OAKG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;CAS/B"}
1
+ {"version":3,"file":"md-view.engine.d.ts","sourceRoot":"","sources":["../../src/engine/md-view.engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,SAAS,EACV,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;;;;;GAOG;AACH,qBAAa,YAAa,SAAQ,cAAc;IAC9C,UAAkB,IAAI,EAAE,cAAc,CACpC,mBAAmB,EACnB,YAAY,EACZ,YAAY,CACb,CAAC;IAEF;;;;;;OAMG;IACH,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED;;;;;OAKG;IACH,SAAS,KAAK,UAAU,IAAI,qBAAqB,CAEhD;IAED;;;;;OAKG;IACH,SAAS,KAAK,SAAS,IAAI,oBAAoB,CAE9C;IAED;;;;;;OAMG;IACH,SAAS,KAAK,YAAY,IAAI,oBAAoB,CAIjD;IAEK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAc1B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAsDhC;;;;;;;OAOG;cACa,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;IAwCrE,SAAS,CAAC,OAAO,IAAI,KAAK,EAAE;IAI5B;;;;;;;;OAQG;cACa,QAAQ,CAAC,IAAI,EAAE;QAC7B,IAAI,EAAE,KAAK,EAAE,CAAC;QACd,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,OAAO,CAAC,EAAE,QAAQ,CAAC;QACnB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BjB;;;;;;;;OAQG;cACa,OAAO,CAAC,IAAI,EAAE;QAC5B,IAAI,EAAE,KAAK,EAAE,CAAC;QACd,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BjB;;;;;;OAMG;cACa,MAAM,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5E;;;;;OAKG;cACa,IAAI,CAAC,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE;;;;;OAKG;cACa,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC;;;;;OAKG;cACa,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvC;;;;;OAKG;IACH,SAAS,CAAC,eAAe,IAAI,OAAO;IAapC;;;;;OAKG;cACa,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3C;;;;;;OAMG;cACa,UAAU,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAItE;;;;;;OAMG;IACG,IAAI,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,UAAU,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAItE,SAAS,CAAC,qBAAqB,IAAI,OAAO;IAc1C;;;;;OAKG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;CAS/B"}
@@ -272,35 +272,14 @@ export class MDViewEngine extends ViewEngineBase {
272
272
  * @return {*} {IParams}
273
273
  */
274
274
  getSearchParams() {
275
- var _a;
276
275
  const params = {};
277
276
  // 有搜索表单的整合相关参数
278
277
  if (this.searchForm) {
279
- const addParams = this.searchForm.getData()[0];
280
- const filteredParams = Object.entries(addParams).reduce((result, [key, value]) => {
281
- if (value !== null && value !== undefined && value !== '') {
282
- result[key] = value;
283
- }
284
- return result;
285
- }, {});
286
- Object.assign(params, filteredParams);
278
+ Object.assign(params, this.searchForm.getFilterParams());
287
279
  }
288
280
  // 有搜索栏的整合相关参数
289
281
  if (this.searchBar) {
290
- // 快速搜索
291
- if (this.searchBar.state.query) {
292
- const addParams = {
293
- query: this.searchBar.state.query,
294
- };
295
- Object.assign(params, addParams);
296
- }
297
- // 快速分组
298
- if ((_a = this.searchBar.state.selectedGroupItem) === null || _a === void 0 ? void 0 : _a.data) {
299
- // eslint-disable-next-line no-new-func
300
- const func = new Function(`return (${this.searchBar.state.selectedGroupItem.data});`);
301
- const addParams = func();
302
- Object.assign(params, addParams);
303
- }
282
+ Object.assign(params, this.searchBar.getFilterParams());
304
283
  }
305
284
  return params;
306
285
  }
@@ -11,5 +11,13 @@ import { IControlController } from './i-control.controller';
11
11
  * @extends {IControlController}
12
12
  */
13
13
  export interface ISearchBarController extends IControlController<ISearchBar, ISearchBarState, ISearchBarEvent> {
14
+ /**
15
+ * 获取搜索栏的过滤参数
16
+ *
17
+ * @author lxm
18
+ * @date 2022-09-22 17:09:21
19
+ * @returns {*} {IParams}
20
+ */
21
+ getFilterParams(): IParams;
14
22
  }
15
23
  //# sourceMappingURL=i-search-bar.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"i-search-bar.controller.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/controller/control/i-search-bar.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D;;;;;;;GAOG;AACH,MAAM,WAAW,oBACf,SAAQ,kBAAkB,CAAC,UAAU,EAAE,eAAe,EAAE,eAAe,CAAC;CAAG"}
1
+ {"version":3,"file":"i-search-bar.controller.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/controller/control/i-search-bar.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D;;;;;;;GAOG;AACH,MAAM,WAAW,oBACf,SAAQ,kBAAkB,CAAC,UAAU,EAAE,eAAe,EAAE,eAAe,CAAC;IACxE;;;;;;OAMG;IACH,eAAe,IAAI,OAAO,CAAC;CAC5B"}
@@ -19,13 +19,13 @@ export interface ISearchFormController extends IFormController<IDESearchForm, IS
19
19
  */
20
20
  load(): Promise<IData>;
21
21
  /**
22
- * 获取搜索表单的视图过滤参数
22
+ * 获取搜索表单的过滤参数
23
23
  *
24
24
  * @author lxm
25
25
  * @date 2022-09-22 17:09:21
26
26
  * @returns {*} {IParams}
27
27
  */
28
- getParams(): IParams;
28
+ getFilterParams(): IParams;
29
29
  /**
30
30
  * 执行搜索行为
31
31
  * @author lxm
@@ -1 +1 @@
1
- {"version":3,"file":"i-search-form.controller.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/controller/control/i-search-form.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,WAAW,qBACf,SAAQ,eAAe,CAAC,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,CAAC;IAC1E;;;;;OAKG;IACH,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;IAEvB;;;;;;OAMG;IACH,SAAS,IAAI,OAAO,CAAC;IAErB;;;;;OAKG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB;;;;;OAKG;IACH,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;;;;OAKG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
1
+ {"version":3,"file":"i-search-form.controller.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/controller/control/i-search-form.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,WAAW,qBACf,SAAQ,eAAe,CAAC,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,CAAC;IAC1E;;;;;OAKG;IACH,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;IAEvB;;;;;;OAMG;IACH,eAAe,IAAI,OAAO,CAAC;IAE3B;;;;;OAKG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB;;;;;OAKG;IACH,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;;;;OAKG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
@@ -1,5 +1,73 @@
1
1
  import { ISearchBarGroup } from '@ibiz/model-core';
2
2
  import { IControlState } from './i-control.state';
3
+ export interface IFilterBranchNode {
4
+ /**
5
+ * 是否是叶子节点
6
+ * @author lxm
7
+ * @date 2023-10-12 05:14:28
8
+ * @type {boolean}
9
+ */
10
+ leaf: false;
11
+ /**
12
+ * 父节点的逻辑类型
13
+ * @author lxm
14
+ * @date 2023-10-12 05:21:18
15
+ * @type {('AND' | 'OR')}
16
+ */
17
+ logicType: 'AND' | 'OR';
18
+ /**
19
+ * 过滤项值
20
+ * @author lxm
21
+ * @date 2023-10-12 05:16:52
22
+ * @type {unknown}
23
+ */
24
+ value?: unknown;
25
+ /**
26
+ * 值操作类型
27
+ * @author lxm
28
+ * @date 2023-10-12 05:27:07
29
+ * @type {string}
30
+ */
31
+ valueOP?: string;
32
+ /**
33
+ * 子节点数据集合
34
+ * @author lxm
35
+ * @date 2023-10-12 05:18:19
36
+ * @type {IFilterTreeNode[]}
37
+ */
38
+ children: IFilterNode[];
39
+ }
40
+ export interface IFilterLeafNode {
41
+ /**
42
+ * 是否是叶子节点
43
+ * @author lxm
44
+ * @date 2023-10-12 05:14:28
45
+ * @type {boolean}
46
+ */
47
+ leaf: true;
48
+ /**
49
+ * 实体属性名称
50
+ * @author lxm
51
+ * @date 2023-10-13 02:35:42
52
+ * @type {string}
53
+ */
54
+ field: string | null;
55
+ /**
56
+ * 过滤项值
57
+ * @author lxm
58
+ * @date 2023-10-12 05:16:52
59
+ * @type {unknown}
60
+ */
61
+ value: unknown | null;
62
+ /**
63
+ * 值操作类型
64
+ * @author lxm
65
+ * @date 2023-10-12 05:27:07
66
+ * @type {string}
67
+ */
68
+ valueOP: string | null;
69
+ }
70
+ export type IFilterNode = IFilterBranchNode | IFilterLeafNode;
3
71
  export interface ISearchBarState extends IControlState {
4
72
  /**
5
73
  * 快速搜索字符串
@@ -22,5 +90,12 @@ export interface ISearchBarState extends IControlState {
22
90
  * @type {boolean}
23
91
  */
24
92
  selectedGroupItem: ISearchBarGroup | null;
93
+ /**
94
+ * 过滤项树节点数据集合
95
+ * @author lxm
96
+ * @date 2023-10-12 05:16:12
97
+ * @type {IFilterNode[]}
98
+ */
99
+ filterNodes: IFilterNode[];
25
100
  }
26
101
  //# sourceMappingURL=i-search-bar.state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"i-search-bar.state.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/state/control/i-search-bar.state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;OAKG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;;;;OAKG;IACH,iBAAiB,EAAE,eAAe,GAAG,IAAI,CAAC;CAC3C"}
1
+ {"version":3,"file":"i-search-bar.state.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/state/control/i-search-bar.state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,IAAI,EAAE,KAAK,CAAC;IAEZ;;;;;OAKG;IACH,SAAS,EAAE,KAAK,GAAG,IAAI,CAAC;IAExB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,IAAI,EAAE,IAAI,CAAC;IAEX;;;;;OAKG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB;;;;;OAKG;IACH,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAEtB;;;;;OAKG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG,eAAe,CAAC;AAE9D,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;OAKG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;;;;OAKG;IACH,iBAAiB,EAAE,eAAe,GAAG,IAAI,CAAC;IAE1C;;;;;OAKG;IACH,WAAW,EAAE,WAAW,EAAE,CAAC;CAC5B"}
@@ -49,13 +49,13 @@ export class Method {
49
49
  let res = null;
50
50
  switch (requestMethod) {
51
51
  case 'POST':
52
- res = await this.app.net.post(this.mergeRequestPath(path, methodName), notNilEmpty(data) ? data : params);
52
+ res = await this.app.net.post(this.mergeRequestPath(path, methodName), notNilEmpty(data) ? data : params || {});
53
53
  break;
54
54
  case 'GET':
55
55
  res = await this.app.net.get(this.mergeRequestPath(path, methodName), data || params);
56
56
  break;
57
57
  case 'PUT': {
58
- res = await this.app.net.put(this.mergeRequestPath(path, methodName), notNilEmpty(data) ? data : params);
58
+ res = await this.app.net.put(this.mergeRequestPath(path, methodName), notNilEmpty(data) ? data : params || {});
59
59
  break;
60
60
  }
61
61
  case 'DELETE':
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ibiz-template/runtime",
3
- "version": "0.1.35",
3
+ "version": "0.1.36",
4
4
  "description": "控制器包",
5
5
  "type": "module",
6
6
  "main": "out/index.js",
@@ -29,7 +29,7 @@
29
29
  "author": "chitanda",
30
30
  "license": "MIT",
31
31
  "devDependencies": {
32
- "@ibiz-template/core": "^0.1.34",
32
+ "@ibiz-template/core": "^0.1.36",
33
33
  "@ibiz/model-core": "^0.0.19",
34
34
  "@types/path-browserify": "^1.0.0",
35
35
  "@types/qs": "^6.9.8",
@@ -57,5 +57,5 @@
57
57
  "qx-util": "^0.4.8",
58
58
  "ramda": "^0.29.0"
59
59
  },
60
- "gitHead": "b2dfac469067544cc9a5e527cc7c4f581d603bc9"
60
+ "gitHead": "d19f35594e34c2e934ae10d094c47c92faa25a8f"
61
61
  }
@@ -3,4 +3,5 @@ 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';
@@ -0,0 +1,82 @@
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 enum ValueOP {
10
+ /**
11
+ * 等于
12
+ */
13
+ 'EQ' = 'EQ',
14
+ /**
15
+ * 不等于
16
+ */
17
+ 'NOT_EQ' = 'NOTEQ',
18
+ /**
19
+ * 大于
20
+ */
21
+ 'GT' = 'GT',
22
+ /**
23
+ * 大于等于
24
+ */
25
+ 'GT_AND_EQ' = 'GTANDEQ',
26
+ /**
27
+ * 小于
28
+ */
29
+ 'LT' = 'LT',
30
+ /**
31
+ * 小于等于
32
+ */
33
+ 'LT_AND_EQ' = 'LTANDEQ',
34
+ /**
35
+ * 值为空
36
+ */
37
+ 'IS_NULL' = 'ISNULL',
38
+ /**
39
+ * 值不为空
40
+ */
41
+ 'IS_NOT_NULL' = 'ISNOTNULL',
42
+ /**
43
+ * 值在范围中
44
+ */
45
+ 'IN' = 'IN',
46
+ /**
47
+ * 值不在范围中
48
+ */
49
+ 'NOT_IN' = 'NOTIN',
50
+ /**
51
+ * 文本包含
52
+ */
53
+ 'LIKE' = 'LIKE',
54
+ /**
55
+ * 文本左包含
56
+ */
57
+ 'LIFT_LIKE' = 'LIFTLIKE',
58
+ /**
59
+ * 文本右包含
60
+ */
61
+ 'RIGHT_LIKE' = 'RIGHT_LIKE',
62
+ /**
63
+ * 子数据(递归)
64
+ */
65
+ 'CHILD_OF' = 'CHILDOF',
66
+ /**
67
+ * 自定义文本包含
68
+ */
69
+ 'USER_LIKE' = 'USERLIKE',
70
+ /**
71
+ * 位与操作(BitAnd)(仅限整数形)
72
+ */
73
+ 'BIT_AND' = 'BITAND',
74
+ /**
75
+ * 存在引用数据
76
+ */
77
+ 'EXISTS' = 'EXISTS',
78
+ /**
79
+ * 不存在引用数据
80
+ */
81
+ 'NOT_EXISTS' = 'NOTEXISTS',
82
+ }
@@ -82,14 +82,22 @@ export class SearchFormController
82
82
  }
83
83
 
84
84
  /**
85
- * 获取搜索表单的视图过滤参数
85
+ * 获取搜索表单的过滤参数
86
86
  *
87
87
  * @author lxm
88
88
  * @date 2022-09-22 17:09:21
89
89
  * @returns {*} {IParams}
90
90
  */
91
- getParams(): IParams {
92
- return { ...this.data.getOrigin() };
91
+ getFilterParams(): IParams {
92
+ const filterParams: IParams = {};
93
+ Object.keys(this.state.data).forEach(key => {
94
+ const value = this.state.data[key];
95
+ // 排除空值
96
+ if (value !== null && value !== undefined && value !== '') {
97
+ filterParams[key] = value;
98
+ }
99
+ });
100
+ return filterParams;
93
101
  }
94
102
 
95
103
  /**