@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,7 +1,9 @@
|
|
|
1
|
-
import { ModelError, RuntimeModelError } from '@ibiz-template/core';
|
|
2
|
-
import { isNil } from 'ramda';
|
|
1
|
+
import { IBizContext, ModelError, RuntimeModelError, } from '@ibiz-template/core';
|
|
2
|
+
import { clone, isNil } from 'ramda';
|
|
3
|
+
import { QXEvent, notNilEmpty } from 'qx-util';
|
|
3
4
|
import { convertNavData, ScriptFactory } from '../../../utils';
|
|
4
5
|
import { fieldValueToBoolean } from '../../utils';
|
|
6
|
+
import { calcDeCodeNameById } from '../../../model';
|
|
5
7
|
/**
|
|
6
8
|
* 动态代码表缓存对象
|
|
7
9
|
*
|
|
@@ -29,7 +31,56 @@ export class DynamicCodeListCache {
|
|
|
29
31
|
* @type {boolean}
|
|
30
32
|
*/
|
|
31
33
|
this.isPredefined = false;
|
|
34
|
+
/**
|
|
35
|
+
* 应用上下文
|
|
36
|
+
*
|
|
37
|
+
* @author tony001
|
|
38
|
+
* @date 2024-04-10 15:04:25
|
|
39
|
+
* @protected
|
|
40
|
+
* @type {IContext}
|
|
41
|
+
*/
|
|
42
|
+
this.context = IBizContext.create();
|
|
43
|
+
/**
|
|
44
|
+
* 视图参数
|
|
45
|
+
*
|
|
46
|
+
* @author tony001
|
|
47
|
+
* @date 2024-04-10 15:04:39
|
|
48
|
+
* @protected
|
|
49
|
+
* @type {IParams}
|
|
50
|
+
*/
|
|
51
|
+
this.params = {};
|
|
52
|
+
/**
|
|
53
|
+
* 事件对象
|
|
54
|
+
*
|
|
55
|
+
* @author tony001
|
|
56
|
+
* @date 2024-04-10 17:04:00
|
|
57
|
+
* @protected
|
|
58
|
+
*/
|
|
59
|
+
this.evt = new QXEvent();
|
|
32
60
|
this.codeList = codeList;
|
|
61
|
+
// 动态代码表监听数据变化
|
|
62
|
+
this.codelistChange = this.codelistChange.bind(this);
|
|
63
|
+
const { appDataEntityId, appDEDataSetId } = this.codeList;
|
|
64
|
+
if (appDataEntityId && appDEDataSetId) {
|
|
65
|
+
ibiz.mc.command.change.on(this.codelistChange);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* 设置上下文以及查询参数
|
|
70
|
+
*
|
|
71
|
+
* @author tony001
|
|
72
|
+
* @date 2024-04-10 15:04:04
|
|
73
|
+
* @protected
|
|
74
|
+
* @param {IContext} [context]
|
|
75
|
+
* @param {IParams} [params]
|
|
76
|
+
*/
|
|
77
|
+
setParams(context, params) {
|
|
78
|
+
if (context) {
|
|
79
|
+
this.context = clone(context);
|
|
80
|
+
}
|
|
81
|
+
if (params) {
|
|
82
|
+
this.params = clone(params);
|
|
83
|
+
}
|
|
33
84
|
}
|
|
34
85
|
/**
|
|
35
86
|
* 初始化
|
|
@@ -148,6 +199,7 @@ export class DynamicCodeListCache {
|
|
|
148
199
|
* @returns {*} {Promise<CodeListItem[]>}
|
|
149
200
|
*/
|
|
150
201
|
async load(context, params = {}) {
|
|
202
|
+
this.setParams(context, params);
|
|
151
203
|
const app = ibiz.hub.getApp(context.srfappid);
|
|
152
204
|
const { appDataEntityId, appDEDataSetId, minorSortAppDEFieldId, minorSortDir, pvalueAppDEFieldId, customCond, } = this.codeList;
|
|
153
205
|
// *处理查询参数
|
|
@@ -283,4 +335,77 @@ export class DynamicCodeListCache {
|
|
|
283
335
|
delete cacheData.promise;
|
|
284
336
|
return result;
|
|
285
337
|
}
|
|
338
|
+
/**
|
|
339
|
+
* 接受代码表实体数据变更,刷新代码表
|
|
340
|
+
*
|
|
341
|
+
* @author tony001
|
|
342
|
+
* @date 2024-04-10 15:04:42
|
|
343
|
+
* @protected
|
|
344
|
+
* @param {IPortalMessage} msg
|
|
345
|
+
*/
|
|
346
|
+
codelistChange(msg) {
|
|
347
|
+
const data = msg.data;
|
|
348
|
+
const { appDataEntityId } = this.codeList;
|
|
349
|
+
if (appDataEntityId) {
|
|
350
|
+
const codeName = calcDeCodeNameById(appDataEntityId);
|
|
351
|
+
if (data &&
|
|
352
|
+
data.srfdecodename &&
|
|
353
|
+
data.srfdecodename.toLowerCase() === codeName) {
|
|
354
|
+
this.refresh();
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* 刷新代码表数据
|
|
360
|
+
*
|
|
361
|
+
* @author tony001
|
|
362
|
+
* @date 2024-04-10 17:04:20
|
|
363
|
+
* @return {*} {Promise<void>}
|
|
364
|
+
*/
|
|
365
|
+
async refresh() {
|
|
366
|
+
// 删除缓存数据
|
|
367
|
+
const key = JSON.stringify(this.context) + JSON.stringify(this.params);
|
|
368
|
+
this.cache.delete(key);
|
|
369
|
+
// 重新加载数据
|
|
370
|
+
const result = await this.get(this.context, this.params);
|
|
371
|
+
this.evt.emit('change', result);
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* 代码表数据变更事件监听
|
|
375
|
+
*
|
|
376
|
+
* @author tony001
|
|
377
|
+
* @date 2024-04-10 17:04:52
|
|
378
|
+
* @param {(data: CodeListItem[]) => void} fn
|
|
379
|
+
* @param {boolean} [immediate=true] 当有数据时,立即触发一次回调
|
|
380
|
+
*/
|
|
381
|
+
onChange(fn, immediate = true) {
|
|
382
|
+
this.evt.on('change', fn);
|
|
383
|
+
const key = JSON.stringify(this.context) + JSON.stringify(this.params);
|
|
384
|
+
const cacheData = this.cache.get(key);
|
|
385
|
+
if (immediate && notNilEmpty(cacheData)) {
|
|
386
|
+
fn(cacheData.items);
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* 取消代码表数据变更监听
|
|
391
|
+
*
|
|
392
|
+
* @author tony001
|
|
393
|
+
* @date 2024-04-10 17:04:57
|
|
394
|
+
* @param {(data: CodeListItem[]) => void} fn
|
|
395
|
+
*/
|
|
396
|
+
offChange(fn) {
|
|
397
|
+
this.evt.off('change', fn);
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* 销毁(取消数据变更监听)
|
|
401
|
+
*
|
|
402
|
+
* @author tony001
|
|
403
|
+
* @date 2024-04-10 15:04:11
|
|
404
|
+
*/
|
|
405
|
+
destroy() {
|
|
406
|
+
const { appDataEntityId, appDEDataSetId } = this.codeList;
|
|
407
|
+
if (appDataEntityId && appDEDataSetId) {
|
|
408
|
+
ibiz.mc.command.change.off(this.codelistChange);
|
|
409
|
+
}
|
|
410
|
+
}
|
|
286
411
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ibiz-template/runtime",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "控制器包",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "out/index.js",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"animejs": "^3.2.2"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@ibiz-template/core": "^0.
|
|
38
|
+
"@ibiz-template/core": "^0.7.0",
|
|
39
39
|
"@ibiz/model-core": "^0.1.20",
|
|
40
40
|
"@types/animejs": "^3.1.12",
|
|
41
41
|
"@types/path-browserify": "^1.0.2",
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { IFilterNode } 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
|
-
* 格式化过滤项 (后续如果修改这里的逻辑记得把下方的反推函数parseFilters也跟着修改!)
|
|
11
|
-
* @author lxm
|
|
12
|
-
* @date 2023-10-16 03:45:41
|
|
13
|
-
* @param {IFilterNode} node
|
|
14
|
-
* @return {*} {IData}
|
|
15
|
-
*/
|
|
16
|
-
export declare function formatFilters(node: IFilterNode): IData;
|
|
17
|
-
/**
|
|
18
|
-
* 根据格式化后的过滤项反推出过滤项树节点数据集合
|
|
19
|
-
* @param {IData} data
|
|
20
|
-
* @return {*}
|
|
21
|
-
* @author: zhujiamin
|
|
22
|
-
* @Date: 2023-12-28 09:47:45
|
|
23
|
-
*/
|
|
24
|
-
export declare function parseFilters(data: IData): IFilterNode;
|
|
25
|
-
/**
|
|
26
|
-
* 根据filterNodes计算出SearchConds
|
|
27
|
-
* @param {IData} data
|
|
28
|
-
* @return {*}
|
|
29
|
-
* @author: zhujiamin
|
|
30
|
-
* @Date: 2023-12-28 09:47:45
|
|
31
|
-
*/
|
|
32
|
-
export declare function calcSearchConds(filterNodes: IFilterNode[]): IData[] | undefined;
|
|
33
|
-
//# sourceMappingURL=use-searchcond.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-searchcond.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/search-bar/use-searchcond.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAKlE;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,WAAW,EAAE,CAQpD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,KAAK,CA+BtD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,WAAW,CA+BrD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,WAAW,EAAE,GACzB,KAAK,EAAE,GAAG,SAAS,CAoBrB"}
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import { RuntimeError, recursiveIterate } from '@ibiz-template/core';
|
|
2
|
-
import { isNil } from 'ramda';
|
|
3
|
-
import { ValueOP } from '../../../constant';
|
|
4
|
-
const ExcludeOPs = [ValueOP.IS_NULL, ValueOP.IS_NOT_NULL];
|
|
5
|
-
/**
|
|
6
|
-
* 获取初始过滤项树节点数据集合
|
|
7
|
-
* @return {*}
|
|
8
|
-
* @author: zhujiamin
|
|
9
|
-
* @Date: 2023-12-21 17:29:47
|
|
10
|
-
*/
|
|
11
|
-
export function getOriginFilterNodes() {
|
|
12
|
-
return [
|
|
13
|
-
{
|
|
14
|
-
leaf: false,
|
|
15
|
-
logicType: 'AND',
|
|
16
|
-
children: [{ leaf: true, field: null, valueOP: null, value: null }],
|
|
17
|
-
},
|
|
18
|
-
];
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* 格式化过滤项 (后续如果修改这里的逻辑记得把下方的反推函数parseFilters也跟着修改!)
|
|
22
|
-
* @author lxm
|
|
23
|
-
* @date 2023-10-16 03:45:41
|
|
24
|
-
* @param {IFilterNode} node
|
|
25
|
-
* @return {*} {IData}
|
|
26
|
-
*/
|
|
27
|
-
export function formatFilters(node) {
|
|
28
|
-
if (!node.leaf) {
|
|
29
|
-
if (node.logicType === 'ITEMS') {
|
|
30
|
-
return {
|
|
31
|
-
condtype: 'ITEMS',
|
|
32
|
-
fieldname: node.field,
|
|
33
|
-
condop: node.valueOP,
|
|
34
|
-
searchconds: node.children.map(item => formatFilters(item)),
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
return {
|
|
38
|
-
condtype: 'GROUP',
|
|
39
|
-
condop: node.logicType,
|
|
40
|
-
bnotmode: false,
|
|
41
|
-
searchconds: node.children.map(item => formatFilters(item)),
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
const leafNode = node;
|
|
45
|
-
const temp = {
|
|
46
|
-
condtype: 'DEFIELD',
|
|
47
|
-
fieldname: node.field,
|
|
48
|
-
condop: node.valueOP,
|
|
49
|
-
value: node.value,
|
|
50
|
-
};
|
|
51
|
-
if (leafNode.valueItem) {
|
|
52
|
-
temp.valueItem = leafNode.valueItem;
|
|
53
|
-
}
|
|
54
|
-
return temp;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* 根据格式化后的过滤项反推出过滤项树节点数据集合
|
|
58
|
-
* @param {IData} data
|
|
59
|
-
* @return {*}
|
|
60
|
-
* @author: zhujiamin
|
|
61
|
-
* @Date: 2023-12-28 09:47:45
|
|
62
|
-
*/
|
|
63
|
-
export function parseFilters(data) {
|
|
64
|
-
if (data.condtype === 'GROUP') {
|
|
65
|
-
return {
|
|
66
|
-
leaf: false,
|
|
67
|
-
logicType: data.condop === 'AND' ? 'AND' : 'OR',
|
|
68
|
-
children: (data.searchconds || []).map((item) => parseFilters(item)),
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
if (data.condtype === 'ITEMS') {
|
|
72
|
-
return {
|
|
73
|
-
leaf: false,
|
|
74
|
-
logicType: 'ITEMS',
|
|
75
|
-
field: data.fieldname || null,
|
|
76
|
-
valueOP: data.condop || null,
|
|
77
|
-
children: (data.searchconds || []).map((item) => parseFilters(item)),
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
if (data.condtype === 'DEFIELD') {
|
|
81
|
-
return {
|
|
82
|
-
leaf: true,
|
|
83
|
-
field: data.fieldname || null,
|
|
84
|
-
valueOP: data.condop || null,
|
|
85
|
-
value: data.value || null,
|
|
86
|
-
valueItem: data.valueItem || undefined,
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
throw new RuntimeError(`无效的condtype:${data.condtype}`);
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* 根据filterNodes计算出SearchConds
|
|
93
|
-
* @param {IData} data
|
|
94
|
-
* @return {*}
|
|
95
|
-
* @author: zhujiamin
|
|
96
|
-
* @Date: 2023-12-28 09:47:45
|
|
97
|
-
*/
|
|
98
|
-
export function calcSearchConds(filterNodes) {
|
|
99
|
-
let hasFilter = false; // 是否有过滤项
|
|
100
|
-
let hasError = false; // 是否有过滤项格式不正确
|
|
101
|
-
recursiveIterate(filterNodes[0], (node) => {
|
|
102
|
-
if (node.leaf) {
|
|
103
|
-
if ((node.field && node.valueOP && !isNil(node.value)) ||
|
|
104
|
-
(node.field && node.valueOP && ExcludeOPs.includes(node.valueOP))) {
|
|
105
|
-
hasFilter = true;
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
// 如果过滤项不给
|
|
109
|
-
hasError = true;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
if (hasFilter && !hasError) {
|
|
114
|
-
const filter = [formatFilters(filterNodes[0])];
|
|
115
|
-
return filter;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
@@ -1,224 +0,0 @@
|
|
|
1
|
-
import { ISearchBarGroup } from '@ibiz/model-core';
|
|
2
|
-
import { IControlState } from './i-control.state';
|
|
3
|
-
import { IColumnState } from './i-grid.state';
|
|
4
|
-
export interface IFilterBranchNode {
|
|
5
|
-
/**
|
|
6
|
-
* 是否是叶子节点
|
|
7
|
-
* @author lxm
|
|
8
|
-
* @date 2023-10-12 05:14:28
|
|
9
|
-
* @type {boolean}
|
|
10
|
-
*/
|
|
11
|
-
leaf: false;
|
|
12
|
-
/**
|
|
13
|
-
* 父节点的逻辑类型
|
|
14
|
-
* @author lxm
|
|
15
|
-
* @date 2023-10-12 05:21:18
|
|
16
|
-
* @type {('AND' | 'OR')}
|
|
17
|
-
*/
|
|
18
|
-
logicType: 'AND' | 'OR' | 'ITEMS';
|
|
19
|
-
/**
|
|
20
|
-
* 实体属性名称
|
|
21
|
-
* @author lxm
|
|
22
|
-
* @date 2023-10-13 02:35:42
|
|
23
|
-
* @type {string}
|
|
24
|
-
*/
|
|
25
|
-
field?: string | null;
|
|
26
|
-
/**
|
|
27
|
-
* 过滤项值
|
|
28
|
-
* @author lxm
|
|
29
|
-
* @date 2023-10-12 05:16:52
|
|
30
|
-
* @type {unknown}
|
|
31
|
-
*/
|
|
32
|
-
value?: unknown;
|
|
33
|
-
/**
|
|
34
|
-
* 值操作类型
|
|
35
|
-
* @author lxm
|
|
36
|
-
* @date 2023-10-12 05:27:07
|
|
37
|
-
* @type {string}
|
|
38
|
-
*/
|
|
39
|
-
valueOP?: string;
|
|
40
|
-
/**
|
|
41
|
-
* 子节点数据集合
|
|
42
|
-
* @author lxm
|
|
43
|
-
* @date 2023-10-12 05:18:19
|
|
44
|
-
* @type {IFilterTreeNode[]}
|
|
45
|
-
*/
|
|
46
|
-
children: IFilterNode[];
|
|
47
|
-
}
|
|
48
|
-
export interface IFilterLeafNode {
|
|
49
|
-
/**
|
|
50
|
-
* 是否是叶子节点
|
|
51
|
-
* @author lxm
|
|
52
|
-
* @date 2023-10-12 05:14:28
|
|
53
|
-
* @type {boolean}
|
|
54
|
-
*/
|
|
55
|
-
leaf: true;
|
|
56
|
-
/**
|
|
57
|
-
* 实体属性名称
|
|
58
|
-
* @author lxm
|
|
59
|
-
* @date 2023-10-13 02:35:42
|
|
60
|
-
* @type {string}
|
|
61
|
-
*/
|
|
62
|
-
field: string | null;
|
|
63
|
-
/**
|
|
64
|
-
* 过滤项值
|
|
65
|
-
* @author lxm
|
|
66
|
-
* @date 2023-10-12 05:16:52
|
|
67
|
-
* @type {unknown}
|
|
68
|
-
*/
|
|
69
|
-
value: unknown | null;
|
|
70
|
-
/**
|
|
71
|
-
* 值操作类型
|
|
72
|
-
* @author lxm
|
|
73
|
-
* @date 2023-10-12 05:27:07
|
|
74
|
-
* @type {string}
|
|
75
|
-
*/
|
|
76
|
-
valueOP: string | null;
|
|
77
|
-
/**
|
|
78
|
-
* 禁用,禁止修改
|
|
79
|
-
* @author lxm
|
|
80
|
-
* @date 2024-02-01 02:51:40
|
|
81
|
-
* @type {boolean}
|
|
82
|
-
*/
|
|
83
|
-
disabled?: boolean;
|
|
84
|
-
/**
|
|
85
|
-
* 值项的值
|
|
86
|
-
* @author lxm
|
|
87
|
-
* @date 2024-02-04 06:40:17
|
|
88
|
-
* @type {unknown}
|
|
89
|
-
*/
|
|
90
|
-
valueItem?: unknown;
|
|
91
|
-
}
|
|
92
|
-
export type IFilterNode = IFilterBranchNode | IFilterLeafNode;
|
|
93
|
-
export interface ISearchBarState extends IControlState {
|
|
94
|
-
/**
|
|
95
|
-
* 快速搜索字符串
|
|
96
|
-
* @return {*}
|
|
97
|
-
* @author: zhujiamin
|
|
98
|
-
* @Date: 2023-06-01 17:51:04
|
|
99
|
-
*/
|
|
100
|
-
query: string;
|
|
101
|
-
/**
|
|
102
|
-
* 是否显示
|
|
103
|
-
* @author lxm
|
|
104
|
-
* @date 2023-08-25 05:32:59
|
|
105
|
-
* @type {boolean}
|
|
106
|
-
*/
|
|
107
|
-
visible: boolean;
|
|
108
|
-
/**
|
|
109
|
-
* 选中的分组项
|
|
110
|
-
* @author lxm
|
|
111
|
-
* @date 2023-08-25 05:32:59
|
|
112
|
-
* @type {boolean}
|
|
113
|
-
*/
|
|
114
|
-
selectedGroupItem: ISearchBarGroup | null;
|
|
115
|
-
/**
|
|
116
|
-
* 过滤项树节点数据集合
|
|
117
|
-
* @author lxm
|
|
118
|
-
* @date 2023-10-12 05:16:12
|
|
119
|
-
* @type {IFilterNode[]}
|
|
120
|
-
*/
|
|
121
|
-
filterNodes: IFilterNode[];
|
|
122
|
-
/**
|
|
123
|
-
* 选中的后台分组项
|
|
124
|
-
* @return {*}
|
|
125
|
-
* @author: zhujiamin
|
|
126
|
-
* @Date: 2023-12-21 11:40:29
|
|
127
|
-
*/
|
|
128
|
-
selectedSearchGroupItem: IBackendSearchBarGroup | null;
|
|
129
|
-
/**
|
|
130
|
-
* 搜索栏后台分组项
|
|
131
|
-
* @return {*}
|
|
132
|
-
* @author: zhujiamin
|
|
133
|
-
* @Date: 2023-12-19 14:45:33
|
|
134
|
-
*/
|
|
135
|
-
searchBarGroups: IBackendSearchBarGroup[];
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* 搜索分组数据接口
|
|
139
|
-
*
|
|
140
|
-
*/
|
|
141
|
-
export interface ISearchGroupData {
|
|
142
|
-
/**
|
|
143
|
-
* 表格列状态
|
|
144
|
-
*/
|
|
145
|
-
columnstates?: Array<IColumnState>;
|
|
146
|
-
/**
|
|
147
|
-
* 自定义搜索条件
|
|
148
|
-
*/
|
|
149
|
-
searchconds?: IData[];
|
|
150
|
-
/**
|
|
151
|
-
* 表格排序查询条件
|
|
152
|
-
*/
|
|
153
|
-
sort?: string;
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* 后台分组接口
|
|
157
|
-
*
|
|
158
|
-
*/
|
|
159
|
-
export interface IBackendSearchBarGroup {
|
|
160
|
-
/**
|
|
161
|
-
* 唯一标识
|
|
162
|
-
* @return {*}
|
|
163
|
-
* @author: zhujiamin
|
|
164
|
-
* @Date: 2024-01-17 18:28:45
|
|
165
|
-
*/
|
|
166
|
-
id?: string;
|
|
167
|
-
/**
|
|
168
|
-
* 标题
|
|
169
|
-
* @return {*}
|
|
170
|
-
* @author: zhujiamin
|
|
171
|
-
* @Date: 2023-12-22 14:25:09
|
|
172
|
-
*/
|
|
173
|
-
caption?: string;
|
|
174
|
-
/**
|
|
175
|
-
* 分组项名称(模型的id, 新建的为viewtag___caption)
|
|
176
|
-
* @return {*}
|
|
177
|
-
* @author: zhujiamin
|
|
178
|
-
* @Date: 2023-12-22 14:25:09
|
|
179
|
-
*/
|
|
180
|
-
name: string;
|
|
181
|
-
/**
|
|
182
|
-
* 是否保存过
|
|
183
|
-
* @return {*}
|
|
184
|
-
* @author: zhujiamin
|
|
185
|
-
* @Date: 2023-12-22 14:25:09
|
|
186
|
-
*/
|
|
187
|
-
saved: boolean;
|
|
188
|
-
/**
|
|
189
|
-
* 是否显示
|
|
190
|
-
* @return {*}
|
|
191
|
-
* @author: zhujiamin
|
|
192
|
-
* @Date: 2023-12-21 11:36:54
|
|
193
|
-
*/
|
|
194
|
-
show: boolean;
|
|
195
|
-
/**
|
|
196
|
-
* 分组排序值
|
|
197
|
-
* @return {*}
|
|
198
|
-
* @author: zhujiamin
|
|
199
|
-
* @Date: 2023-12-26 11:21:02
|
|
200
|
-
*/
|
|
201
|
-
order: number;
|
|
202
|
-
/**
|
|
203
|
-
* 搜索分组数据
|
|
204
|
-
* @return {*}
|
|
205
|
-
* @author: zhujiamin
|
|
206
|
-
* @Date: 2023-12-21 11:24:21
|
|
207
|
-
*/
|
|
208
|
-
searchGroupData: ISearchGroupData;
|
|
209
|
-
/**
|
|
210
|
-
* 是否默认选中
|
|
211
|
-
* @return {*}
|
|
212
|
-
* @author: zhujiamin
|
|
213
|
-
* @Date: 2023-12-21 11:24:21
|
|
214
|
-
*/
|
|
215
|
-
defaultSelect?: boolean;
|
|
216
|
-
/**
|
|
217
|
-
* 是否不可编辑
|
|
218
|
-
* @return {*}
|
|
219
|
-
* @author: zhujiamin
|
|
220
|
-
* @Date: 2024-01-17 17:24:28
|
|
221
|
-
*/
|
|
222
|
-
noEdit?: boolean;
|
|
223
|
-
}
|
|
224
|
-
//# sourceMappingURL=i-search-bar.state.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,IAAI,EAAE,KAAK,CAAC;IAEZ;;;;;OAKG;IACH,SAAS,EAAE,KAAK,GAAG,IAAI,GAAG,OAAO,CAAC;IAElC;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB;;;;;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;IAEvB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;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;IAE3B;;;;;OAKG;IACH,uBAAuB,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAEvD;;;;;OAKG;IACH,eAAe,EAAE,sBAAsB,EAAE,CAAC;CAC3C;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAEnC;;OAEG;IACH,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC;IAEtB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;OAKG;IACH,KAAK,EAAE,OAAO,CAAC;IAEf;;;;;OAKG;IACH,IAAI,EAAE,OAAO,CAAC;IAEd;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;OAKG;IACH,eAAe,EAAE,gBAAgB,CAAC;IAElC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB"}
|
|
File without changes
|