@ibiz-template/runtime 0.1.35 → 0.1.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.js +363 -70
- package/dist/index.system.min.js +1 -1
- package/dist/index.system.min.js.map +1 -1
- package/out/constant/index.d.ts +1 -0
- package/out/constant/index.d.ts.map +1 -1
- package/out/constant/index.js +1 -0
- package/out/constant/value-op.d.ts +82 -0
- package/out/constant/value-op.d.ts.map +1 -0
- package/out/constant/value-op.js +83 -0
- package/out/controller/control/form/search-form/search-form.controller.d.ts +2 -2
- package/out/controller/control/form/search-form/search-form.controller.d.ts.map +1 -1
- package/out/controller/control/form/search-form/search-form.controller.js +11 -3
- package/out/controller/control/md-ctrl/md-ctrl.controller.d.ts +38 -3
- package/out/controller/control/md-ctrl/md-ctrl.controller.d.ts.map +1 -1
- package/out/controller/control/md-ctrl/md-ctrl.controller.js +110 -3
- package/out/controller/control/search-bar/search-bar-filter.controller.d.ts +65 -0
- package/out/controller/control/search-bar/search-bar-filter.controller.d.ts.map +1 -0
- package/out/controller/control/search-bar/search-bar-filter.controller.js +48 -0
- package/out/controller/control/search-bar/search-bar.controller.d.ts +63 -4
- package/out/controller/control/search-bar/search-bar.controller.d.ts.map +1 -1
- package/out/controller/control/search-bar/search-bar.controller.js +143 -9
- package/out/engine/md-view.engine.d.ts.map +1 -1
- package/out/engine/md-view.engine.js +2 -23
- package/out/interface/controller/controller/control/i-search-bar.controller.d.ts +8 -0
- package/out/interface/controller/controller/control/i-search-bar.controller.d.ts.map +1 -1
- package/out/interface/controller/controller/control/i-search-form.controller.d.ts +2 -2
- package/out/interface/controller/controller/control/i-search-form.controller.d.ts.map +1 -1
- package/out/interface/controller/state/control/i-search-bar.state.d.ts +75 -0
- package/out/interface/controller/state/control/i-search-bar.state.d.ts.map +1 -1
- package/out/service/service/entity/method/method.js +2 -2
- package/package.json +3 -3
- package/src/constant/index.ts +1 -0
- package/src/constant/value-op.ts +82 -0
- package/src/controller/control/form/search-form/search-form.controller.ts +11 -3
- package/src/controller/control/md-ctrl/md-ctrl.controller.ts +136 -3
- package/src/controller/control/search-bar/search-bar-filter.controller.ts +112 -0
- package/src/controller/control/search-bar/search-bar.controller.ts +165 -9
- package/src/engine/md-view.engine.ts +2 -27
- package/src/interface/controller/controller/control/i-search-bar.controller.ts +10 -1
- package/src/interface/controller/controller/control/i-search-form.controller.ts +2 -2
- package/src/interface/controller/state/control/i-search-bar.state.ts +86 -0
- package/src/service/service/entity/method/method.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-bar.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/search-bar/search-bar.controller.ts"],"names":[],"mappings":"
|
|
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
|
-
|
|
36
|
-
|
|
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
|
|
40
|
-
if (
|
|
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
|
|
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
|
-
|
|
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;
|
|
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
|
-
|
|
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;
|
|
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
|
-
|
|
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,
|
|
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;
|
|
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.
|
|
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.
|
|
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": "
|
|
60
|
+
"gitHead": "d19f35594e34c2e934ae10d094c47c92faa25a8f"
|
|
61
61
|
}
|
package/src/constant/index.ts
CHANGED
|
@@ -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
|
-
|
|
92
|
-
|
|
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
|
/**
|