@ebuilding/biz-comm 3.1.6 → 3.2.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/components/filter/src/default/index.d.ts +28 -0
- package/fesm2022/components.filter.mjs +95 -2
- package/fesm2022/components.filter.mjs.map +1 -1
- package/fesm2022/other.source.filter.mjs +1 -0
- package/fesm2022/other.source.filter.mjs.map +1 -1
- package/fesm2022/other.source.mjs +1 -0
- package/fesm2022/other.source.mjs.map +1 -1
- package/package.json +20 -20
|
@@ -10,6 +10,7 @@ export declare class GramDeonFilterComponent implements OnInit, OnChanges {
|
|
|
10
10
|
data: any;
|
|
11
11
|
tableData: any[];
|
|
12
12
|
filterData: any[];
|
|
13
|
+
argumentData: any[];
|
|
13
14
|
itemOptions: any;
|
|
14
15
|
dataChange: EventEmitter<any>;
|
|
15
16
|
FilterTypeData: any[];
|
|
@@ -17,6 +18,7 @@ export declare class GramDeonFilterComponent implements OnInit, OnChanges {
|
|
|
17
18
|
SpecialFieldData: any[];
|
|
18
19
|
CompareTypeData: any[];
|
|
19
20
|
CompareConditionsData: any[];
|
|
21
|
+
readonly DateValueModeData: any[];
|
|
20
22
|
constructor(http: _HttpClient);
|
|
21
23
|
ngOnInit(): void;
|
|
22
24
|
ngOnChanges(changes: SimpleChanges): void;
|
|
@@ -36,6 +38,32 @@ export declare class GramDeonFilterComponent implements OnInit, OnChanges {
|
|
|
36
38
|
operationChange(e: any, item: any): void;
|
|
37
39
|
refDataChange(e: any, item: any): void;
|
|
38
40
|
initValueConfig(item: any, tableName: any): void;
|
|
41
|
+
/** 返回筛选右值来源;模板参数使用结构化表达式保存,运行时仍通过预编译参数绑定。 */
|
|
42
|
+
valueSourceMode(item: any): 'FIXED' | 'ARGUMENT';
|
|
43
|
+
/** 切换筛选右值来源时清理上一种来源的值,避免固定值和模板参数相互污染。 */
|
|
44
|
+
valueSourceModeChange(mode: 'FIXED' | 'ARGUMENT', item: any): void;
|
|
45
|
+
argumentCode(item: any): string | null;
|
|
46
|
+
argumentChange(code: string, item: any): void;
|
|
47
|
+
/**
|
|
48
|
+
* 判断字段是否使用日期编辑器,DATE 和 DATETIME 使用同一套日期值处理逻辑。
|
|
49
|
+
*/
|
|
50
|
+
isDateField(fieldType: any): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* 返回日期值的选择模式。动态日期变量使用下拉选项,避免直接传给日期组件造成 Invalid time value。
|
|
53
|
+
*/
|
|
54
|
+
dateValueMode(value: any): string;
|
|
55
|
+
/**
|
|
56
|
+
* 切换日期来源。选择固定日期时清空动态变量,等待用户重新选择具体日期。
|
|
57
|
+
*/
|
|
58
|
+
dateValueModeChange(mode: string, item: any): void;
|
|
59
|
+
/**
|
|
60
|
+
* 将接口返回的日期字符串转换为日期组件需要的 Date,动态日期变量保持原值。
|
|
61
|
+
*/
|
|
62
|
+
private normalizeDateValue;
|
|
63
|
+
/**
|
|
64
|
+
* 兼容数据库常见的 yyyy-MM-dd、yyyy-MM-dd HH:mm:ss 和 ISO 日期格式。
|
|
65
|
+
*/
|
|
66
|
+
private parseDate;
|
|
39
67
|
static ɵfac: i0.ɵɵFactoryDeclaration<GramDeonFilterComponent, never>;
|
|
40
68
|
static ɵcmp: i0.ɵɵComponentDeclaration<GramDeonFilterComponent, "gram-filter", never, { "title": { "alias": "title"; "required": false; }; "data": { "alias": "data"; "required": false; }; }, { "dataChange": "dataChange"; }, never, never, true, never>;
|
|
41
69
|
}
|
|
@@ -32,6 +32,7 @@ class GramDeonFilterComponent {
|
|
|
32
32
|
data = null;
|
|
33
33
|
tableData = [];
|
|
34
34
|
filterData = [];
|
|
35
|
+
argumentData = [];
|
|
35
36
|
itemOptions = {};
|
|
36
37
|
dataChange = new EventEmitter();
|
|
37
38
|
FilterTypeData = FilterType();
|
|
@@ -41,6 +42,13 @@ class GramDeonFilterComponent {
|
|
|
41
42
|
CompareConditionsData = CompareConditions().filter((item) => {
|
|
42
43
|
return item.value != 'IN' && item.value != 'LIKE' && item.value != 'LEFT_LIKE' && item.value != 'RIGHT_LIKE';
|
|
43
44
|
});
|
|
45
|
+
DateValueModeData = [
|
|
46
|
+
{ value: 'FIXED', label: '固定日期' },
|
|
47
|
+
{ value: '${today}', label: '运行当天' },
|
|
48
|
+
{ value: '${monthStart}', label: '当月月初' },
|
|
49
|
+
{ value: '${nextMonthStart}', label: '下月月初' },
|
|
50
|
+
{ value: '${monthEnd}', label: '当月月末' },
|
|
51
|
+
];
|
|
44
52
|
constructor(http) {
|
|
45
53
|
this.http = http;
|
|
46
54
|
}
|
|
@@ -49,6 +57,7 @@ class GramDeonFilterComponent {
|
|
|
49
57
|
if (changes['data']) {
|
|
50
58
|
if (this.data && this.data.tableData) {
|
|
51
59
|
this.tableData = _.cloneDeep(this.data.tableData);
|
|
60
|
+
this.argumentData = Array.isArray(this.data.argumentData) ? _.cloneDeep(this.data.argumentData) : [];
|
|
52
61
|
if (this.data.filterData && this.data.filterData.length > 0) {
|
|
53
62
|
this.data.filterData.forEach((item) => {
|
|
54
63
|
let arrTable = this.tableData.filter((table) => {
|
|
@@ -61,6 +70,7 @@ class GramDeonFilterComponent {
|
|
|
61
70
|
});
|
|
62
71
|
if (arrField && arrField.length > 0) {
|
|
63
72
|
item['fieldType'] = arrField[0].type;
|
|
73
|
+
this.normalizeDateValue(item);
|
|
64
74
|
}
|
|
65
75
|
}
|
|
66
76
|
this.initValueConfig(item, arrTable[0].name);
|
|
@@ -159,6 +169,7 @@ class GramDeonFilterComponent {
|
|
|
159
169
|
if (f.code == item.cellField) {
|
|
160
170
|
item.fieldType = f.type;
|
|
161
171
|
item.cellMultiple = f.multiple;
|
|
172
|
+
this.normalizeDateValue(item);
|
|
162
173
|
this.initValueConfig(item, t.name);
|
|
163
174
|
}
|
|
164
175
|
});
|
|
@@ -197,8 +208,90 @@ class GramDeonFilterComponent {
|
|
|
197
208
|
},
|
|
198
209
|
};
|
|
199
210
|
}
|
|
211
|
+
/** 返回筛选右值来源;模板参数使用结构化表达式保存,运行时仍通过预编译参数绑定。 */
|
|
212
|
+
valueSourceMode(item) {
|
|
213
|
+
return /^\$\{(?:argument|arg)\.[A-Za-z][A-Za-z0-9_]{0,63}}$/.test(String(item?.cellValue || '').trim())
|
|
214
|
+
? 'ARGUMENT'
|
|
215
|
+
: 'FIXED';
|
|
216
|
+
}
|
|
217
|
+
/** 切换筛选右值来源时清理上一种来源的值,避免固定值和模板参数相互污染。 */
|
|
218
|
+
valueSourceModeChange(mode, item) {
|
|
219
|
+
item.cellValue = mode === 'ARGUMENT' && this.argumentData.length
|
|
220
|
+
? `\${argument.${this.argumentData[0].argumentCode}}`
|
|
221
|
+
: null;
|
|
222
|
+
}
|
|
223
|
+
argumentCode(item) {
|
|
224
|
+
const match = /^\$\{(?:argument|arg)\.([A-Za-z][A-Za-z0-9_]{0,63})}$/.exec(String(item?.cellValue || '').trim());
|
|
225
|
+
return match ? match[1] : null;
|
|
226
|
+
}
|
|
227
|
+
argumentChange(code, item) {
|
|
228
|
+
item.cellValue = code ? `\${argument.${code}}` : null;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* 判断字段是否使用日期编辑器,DATE 和 DATETIME 使用同一套日期值处理逻辑。
|
|
232
|
+
*/
|
|
233
|
+
isDateField(fieldType) {
|
|
234
|
+
return fieldType === 'DATE' || fieldType === 'DATETIME';
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* 返回日期值的选择模式。动态日期变量使用下拉选项,避免直接传给日期组件造成 Invalid time value。
|
|
238
|
+
*/
|
|
239
|
+
dateValueMode(value) {
|
|
240
|
+
const text = typeof value === 'string' ? value.trim() : '';
|
|
241
|
+
return this.DateValueModeData.some((item) => item.value !== 'FIXED' && item.value === text)
|
|
242
|
+
? text
|
|
243
|
+
: 'FIXED';
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* 切换日期来源。选择固定日期时清空动态变量,等待用户重新选择具体日期。
|
|
247
|
+
*/
|
|
248
|
+
dateValueModeChange(mode, item) {
|
|
249
|
+
if (mode === 'FIXED') {
|
|
250
|
+
item.cellValue = item.cellValue instanceof Date && !Number.isNaN(item.cellValue.getTime())
|
|
251
|
+
? item.cellValue
|
|
252
|
+
: null;
|
|
253
|
+
return;
|
|
254
|
+
}
|
|
255
|
+
item.cellValue = mode;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* 将接口返回的日期字符串转换为日期组件需要的 Date,动态日期变量保持原值。
|
|
259
|
+
*/
|
|
260
|
+
normalizeDateValue(item) {
|
|
261
|
+
if (!this.isDateField(item?.fieldType) || item?.cellValue == null || item.cellValue === '') {
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
if (this.dateValueMode(item.cellValue) !== 'FIXED') {
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
if (this.valueSourceMode(item) === 'ARGUMENT') {
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
if (item.cellValue instanceof Date) {
|
|
271
|
+
if (Number.isNaN(item.cellValue.getTime())) {
|
|
272
|
+
item.cellValue = null;
|
|
273
|
+
}
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
const parsed = this.parseDate(item.cellValue);
|
|
277
|
+
item.cellValue = parsed;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* 兼容数据库常见的 yyyy-MM-dd、yyyy-MM-dd HH:mm:ss 和 ISO 日期格式。
|
|
281
|
+
*/
|
|
282
|
+
parseDate(value) {
|
|
283
|
+
const text = String(value).trim();
|
|
284
|
+
const dateOnly = /^(\d{4})-(\d{2})-(\d{2})$/.exec(text);
|
|
285
|
+
if (dateOnly) {
|
|
286
|
+
const date = new Date(Number(dateOnly[1]), Number(dateOnly[2]) - 1, Number(dateOnly[3]));
|
|
287
|
+
return Number.isNaN(date.getTime()) ? null : date;
|
|
288
|
+
}
|
|
289
|
+
const normalized = text.replace(' ', 'T');
|
|
290
|
+
const date = new Date(normalized);
|
|
291
|
+
return Number.isNaN(date.getTime()) ? null : date;
|
|
292
|
+
}
|
|
200
293
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GramDeonFilterComponent, deps: [{ token: i1._HttpClient }], target: i0.ɵɵFactoryTarget.Component });
|
|
201
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: GramDeonFilterComponent, isStandalone: true, selector: "gram-filter", inputs: { title: "title", data: "data" }, outputs: { dataChange: "dataChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"header-box\">\r\n {{title}}\r\n <a (click)=\"addCondition()\">\r\n <i nz-icon nzType=\"plus-circle\"></i>\r\n \u65B0\u589E\r\n </a>\r\n</div>\r\n<div class=\"body-box\">\r\n <ng-container *ngIf=\"filterData!! && filterData.length>0;else tmpEmpty\">\r\n <ng-container *ngFor=\"let item of filterData;let i=index\">\r\n <ul>\r\n <li class=\"leftBracket\">\r\n <nz-select [(ngModel)]=\"item.leftBracket\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"leftBracket\">\r\n <nz-select [(ngModel)]=\"item.leftBracket2\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"cellOperation\">\r\n <nz-select [(ngModel)]=\"item.cellOperation\" nzAllowClear (ngModelChange)=\"operationChange($event,item)\">\r\n <ng-container *ngFor=\"let option of CompareConditionsData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li *ngIf=\"item?.cellOperation!='SQL_RULES'\" class=\"conditionTable\">\r\n <nz-select [(ngModel)]=\"item.cellTable\" nzAllowClear (ngModelChange)=\"tableChange($event,item)\">\r\n <ng-container *ngFor=\"let option of tableData\">\r\n <nz-option [nzValue]=\"option.code\" [nzLabel]=\"option.name\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n\r\n <li *ngIf=\"item?.cellOperation!='SQL_RULES'\" class=\"conditionField\">\r\n <nz-select [(ngModel)]=\"item.cellField\" nzAllowClear (ngModelChange)=\"fieldChange($event,item)\">\r\n <ng-container *ngFor=\"let option of getFieldData(item.cellTable)\">\r\n <nz-option [nzValue]=\"option.code\" [nzLabel]=\"option.name\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li *ngIf=\"item?.cellOperation!='SQL_RULES'\">\r\n <ng-container *ngIf=\"item.cellTable!! && item.cellField!! && item.fieldType!!\">\r\n <div class=\"cellValue\">\r\n <ng-container [ngSwitch]=\"item.fieldType\">\r\n <ng-container *ngSwitchCase=\"'BOOLEAN'\">\r\n <nz-select [(ngModel)]=\"item.cellValue\">\r\n <nz-option nzValue=\"0\" nzLabel=\"\u5426\"></nz-option>\r\n <nz-option nzValue=\"1\" nzLabel=\"\u662F\"></nz-option>\r\n </nz-select>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'DATETIME'\">\r\n <ng-container\r\n *ngIf=\"item?.cellOperation!='DATE_YEAR' \r\n && item?.cellOperation!='DATE_MONTH' \r\n && item?.cellOperation!='DATE_WEEK' \r\n && item?.cellOperation!='DATE_QUARTER'\"\r\n >\r\n <nz-date-picker nzShowTime nzFormat=\"yyyy-MM-dd HH:mm:ss\" [(ngModel)]=\"item.cellValue\"></nz-date-picker>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'INT'\">\r\n <nz-input-number [(ngModel)]=\"item.cellValue\" [nzStep]=\"1\" [nzPrecision]=\"0\"></nz-input-number>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'FLOAT'\">\r\n <nz-input-number [(ngModel)]=\"item.cellValue\" [nzStep]=\"1\" [nzPrecision]=\"2\"></nz-input-number>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'ITEM'\">\r\n <ng-container *ngIf=\"item?.cellMultiple==true;else tmp1\">\u6682\u4E0D\u652F\u6301\u591A\u9009</ng-container>\r\n <ng-template #tmp1>\r\n <nz-select [(ngModel)]=\"item.cellValue\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of getItemData(item.cellTable,item.cellField)\">\r\n <nz-option [nzValue]=\"option.code\" [nzLabel]=\"option.name\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'REF'\">\r\n <ng-container *ngIf=\"item?.cellMultiple==true;else tmp2\">\u6682\u4E0D\u652F\u6301\u591A\u9009</ng-container>\r\n <ng-template #tmp2>\r\n <gram-lookup\r\n [config]=\"item.cellValueConfig\"\r\n [data]=\"item.cellValueInfo\"\r\n (valueChange)=\"refDataChange($event,item)\"\r\n ></gram-lookup>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <input nz-input [(ngModel)]=\"item.cellValue\" />\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </li>\r\n <li *ngIf=\"item?.cellOperation=='SQL_RULES' \">\r\n <div class=\"cellValue\">\r\n <input nz-input [(ngModel)]=\"item.cellValue\" />\r\n </div>\r\n </li>\r\n <li class=\"rightBracket\">\r\n <nz-select [(ngModel)]=\"item.rightBracket\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"rightBracket\">\r\n <nz-select [(ngModel)]=\"item.rightBracket2\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"cellFunction\">\r\n <nz-select [(ngModel)]=\"item.cellFunction\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of FilterTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <div class=\"btnDel\">\r\n <a (click)=\"delCondition(i)\">\r\n <i nz-icon nzType=\"delete\"></i>\r\n </a>\r\n </div>\r\n </ul>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #tmpEmpty>\r\n <div class=\"empty\">\r\n <div class=\"image\"><img src=\"assets/images/default/empty2.png\" /></div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host ::ng-deep{display:flex;flex-direction:column;font-size:12px;border:1px solid #eaeaea;border-radius:4px}:host ::ng-deep .header-box{display:flex;align-items:center;padding:8px 10px;background:#edeff3;border-bottom:1px solid #eaeaea}:host ::ng-deep .header-box i{margin-left:15px}:host ::ng-deep .body-box{display:inline-block;padding:15px 0 0}:host ::ng-deep .body-box ul{position:relative;display:flex;align-items:center;margin:0;padding:0 10px 10px}:host ::ng-deep .body-box ul li{display:flex;flex-direction:column;padding:0 10px 0 0}:host ::ng-deep .body-box .btnAdd{padding:8px 10px;border-top:1px solid #eaeaea}:host ::ng-deep .body-box .leftBracket,:host ::ng-deep .body-box .rightBracket{width:60px}:host ::ng-deep .body-box .cellOperation{width:140px}:host ::ng-deep .body-box .conditionTable,:host ::ng-deep .body-box .conditionField{width:200px}:host ::ng-deep .body-box .cellValue nz-select,:host ::ng-deep .body-box .cellValue .ant-input{width:190px}:host ::ng-deep .body-box .cellFunction{width:80px}:host ::ng-deep .between{margin:0 5px}:host ::ng-deep .empty{display:flex;padding:0 0 15px}:host ::ng-deep .empty .image{margin:auto}:host ::ng-deep .empty img{width:80px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: NzSelectModule }, { kind: "component", type: i4.NzOptionComponent, selector: "nz-option", inputs: ["nzTitle", "nzLabel", "nzValue", "nzKey", "nzDisabled", "nzHide", "nzCustomContent"], exportAs: ["nzOption"] }, { kind: "component", type: i4.NzSelectComponent, selector: "nz-select", inputs: ["nzId", "nzSize", "nzStatus", "nzOptionHeightPx", "nzOptionOverflowSize", "nzDropdownClassName", "nzDropdownMatchSelectWidth", "nzDropdownStyle", "nzNotFoundContent", "nzPlaceHolder", "nzPlacement", "nzMaxTagCount", "nzDropdownRender", "nzCustomTemplate", "nzSuffixIcon", "nzClearIcon", "nzRemoveIcon", "nzMenuItemSelectedIcon", "nzTokenSeparators", "nzMaxTagPlaceholder", "nzMaxMultipleCount", "nzMode", "nzFilterOption", "compareWith", "nzAllowClear", "nzBorderless", "nzShowSearch", "nzLoading", "nzAutoFocus", "nzAutoClearSearchValue", "nzServerSearch", "nzDisabled", "nzOpen", "nzSelectOnTab", "nzBackdrop", "nzOptions", "nzShowArrow"], outputs: ["nzOnSearch", "nzScrollToBottom", "nzOpenChange", "nzBlur", "nzFocus"], exportAs: ["nzSelect"] }, { kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i5.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "ngmodule", type: NzInputNumberModule }, { kind: "component", type: i6.NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzId", "nzSize", "nzPlaceHolder", "nzStatus", "nzStep", "nzMin", "nzMax", "nzPrecision", "nzParser", "nzFormatter", "nzDisabled", "nzReadOnly", "nzAutoFocus", "nzBordered", "nzKeyboard", "nzControls"], outputs: ["nzBlur", "nzFocus", "nzOnStep"], exportAs: ["nzInputNumber"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "directive", type: i7.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], nz-icon, [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "ngmodule", type: NzDatePickerModule }, { kind: "component", type: i8.NzDatePickerComponent, selector: "nz-date-picker,nz-week-picker,nz-month-picker,nz-quarter-picker,nz-year-picker,nz-range-picker", inputs: ["nzAllowClear", "nzAutoFocus", "nzDisabled", "nzBorderless", "nzInputReadOnly", "nzInline", "nzOpen", "nzDisabledDate", "nzLocale", "nzPlaceHolder", "nzPopupStyle", "nzDropdownClassName", "nzSize", "nzStatus", "nzFormat", "nzDateRender", "nzDisabledTime", "nzRenderExtraFooter", "nzShowToday", "nzMode", "nzShowNow", "nzRanges", "nzDefaultPickerValue", "nzSeparator", "nzSuffixIcon", "nzBackdrop", "nzId", "nzPlacement", "nzShowWeekNumber", "nzShowTime"], outputs: ["nzOnPanelChange", "nzOnCalendarChange", "nzOnOk", "nzOnOpenChange"], exportAs: ["nzDatePicker"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i9.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: GramDeonLookUpModule }, { kind: "component", type: i10.GramDeonLookUpComponent, selector: "gram-lookup", inputs: ["placeholder", "config", "data", "noSave"], outputs: ["valueChange"] }] });
|
|
294
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: GramDeonFilterComponent, isStandalone: true, selector: "gram-filter", inputs: { title: "title", data: "data" }, outputs: { dataChange: "dataChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"header-box\">\r\n {{title}}\r\n <a (click)=\"addCondition()\">\r\n <i nz-icon nzType=\"plus-circle\"></i>\r\n \u65B0\u589E\r\n </a>\r\n</div>\r\n<div class=\"body-box\">\r\n <ng-container *ngIf=\"filterData!! && filterData.length>0;else tmpEmpty\">\r\n <ng-container *ngFor=\"let item of filterData;let i=index\">\r\n <ul>\r\n <li class=\"leftBracket\">\r\n <nz-select [(ngModel)]=\"item.leftBracket\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"leftBracket\">\r\n <nz-select [(ngModel)]=\"item.leftBracket2\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"cellOperation\">\r\n <nz-select [(ngModel)]=\"item.cellOperation\" nzAllowClear (ngModelChange)=\"operationChange($event,item)\">\r\n <ng-container *ngFor=\"let option of CompareConditionsData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li *ngIf=\"item?.cellOperation!='SQL_RULES'\" class=\"conditionTable\">\r\n <nz-select [(ngModel)]=\"item.cellTable\" nzAllowClear (ngModelChange)=\"tableChange($event,item)\">\r\n <ng-container *ngFor=\"let option of tableData\">\r\n <nz-option [nzValue]=\"option.code\" [nzLabel]=\"option.name\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n\r\n <li *ngIf=\"item?.cellOperation!='SQL_RULES'\" class=\"conditionField\">\r\n <nz-select [(ngModel)]=\"item.cellField\" nzAllowClear (ngModelChange)=\"fieldChange($event,item)\">\r\n <ng-container *ngFor=\"let option of getFieldData(item.cellTable)\">\r\n <nz-option [nzValue]=\"option.code\" [nzLabel]=\"option.name\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li *ngIf=\"item?.cellOperation!='SQL_RULES'\">\r\n <ng-container *ngIf=\"item.cellTable!! && item.cellField!! && item.fieldType!!\">\r\n <div class=\"cellValue\" [class.date-cell-value]=\"isDateField(item.fieldType)\">\n <nz-select\n *ngIf=\"argumentData.length\"\n class=\"value-source-select\"\n [ngModel]=\"valueSourceMode(item)\"\n (ngModelChange)=\"valueSourceModeChange($event, item)\"\n >\n <nz-option nzValue=\"FIXED\" nzLabel=\"\u56FA\u5B9A\u503C\"></nz-option>\n <nz-option nzValue=\"ARGUMENT\" nzLabel=\"\u6A21\u677F\u53C2\u6570\"></nz-option>\n </nz-select>\n <nz-select\n *ngIf=\"argumentData.length && valueSourceMode(item) === 'ARGUMENT'\"\n [ngModel]=\"argumentCode(item)\"\n (ngModelChange)=\"argumentChange($event, item)\"\n nzPlaceHolder=\"\u8BF7\u9009\u62E9\u6A21\u677F\u53C2\u6570\"\n >\n <nz-option\n *ngFor=\"let argument of argumentData\"\n [nzValue]=\"argument.argumentCode\"\n [nzLabel]=\"argument.argumentName\"\n ></nz-option>\n </nz-select>\n <ng-container *ngIf=\"valueSourceMode(item) === 'FIXED'\">\n <ng-container [ngSwitch]=\"item.fieldType\">\n <ng-container *ngSwitchCase=\"'BOOLEAN'\">\r\n <nz-select [(ngModel)]=\"item.cellValue\">\r\n <nz-option nzValue=\"0\" nzLabel=\"\u5426\"></nz-option>\r\n <nz-option nzValue=\"1\" nzLabel=\"\u662F\"></nz-option>\r\n </nz-select>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'DATETIME'\">\n <ng-container *ngTemplateOutlet=\"dateValueEditor; context: { $implicit: item }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'DATE'\">\n <ng-container *ngTemplateOutlet=\"dateValueEditor; context: { $implicit: item }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'INT'\">\r\n <nz-input-number [(ngModel)]=\"item.cellValue\" [nzStep]=\"1\" [nzPrecision]=\"0\"></nz-input-number>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'FLOAT'\">\r\n <nz-input-number [(ngModel)]=\"item.cellValue\" [nzStep]=\"1\" [nzPrecision]=\"2\"></nz-input-number>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'ITEM'\">\r\n <ng-container *ngIf=\"item?.cellMultiple==true;else tmp1\">\u6682\u4E0D\u652F\u6301\u591A\u9009</ng-container>\r\n <ng-template #tmp1>\r\n <nz-select [(ngModel)]=\"item.cellValue\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of getItemData(item.cellTable,item.cellField)\">\r\n <nz-option [nzValue]=\"option.code\" [nzLabel]=\"option.name\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'REF'\">\r\n <ng-container *ngIf=\"item?.cellMultiple==true;else tmp2\">\u6682\u4E0D\u652F\u6301\u591A\u9009</ng-container>\r\n <ng-template #tmp2>\r\n <gram-lookup\r\n [config]=\"item.cellValueConfig\"\r\n [data]=\"item.cellValueInfo\"\r\n (valueChange)=\"refDataChange($event,item)\"\r\n ></gram-lookup>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <input nz-input [(ngModel)]=\"item.cellValue\" />\r\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\r\n </li>\r\n <li *ngIf=\"item?.cellOperation=='SQL_RULES' \">\r\n <div class=\"cellValue\">\r\n <input nz-input [(ngModel)]=\"item.cellValue\" />\r\n </div>\r\n </li>\r\n <li class=\"rightBracket\">\r\n <nz-select [(ngModel)]=\"item.rightBracket\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"rightBracket\">\r\n <nz-select [(ngModel)]=\"item.rightBracket2\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"cellFunction\">\r\n <nz-select [(ngModel)]=\"item.cellFunction\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of FilterTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <div class=\"btnDel\">\r\n <a (click)=\"delCondition(i)\">\r\n <i nz-icon nzType=\"delete\"></i>\r\n </a>\r\n </div>\r\n </ul>\r\n </ng-container>\r\n </ng-container>\r\n</div>\n\n<ng-template #dateValueEditor let-dateItem>\n <ng-container\n *ngIf=\"dateItem?.cellOperation!='DATE_YEAR'\n && dateItem?.cellOperation!='DATE_MONTH'\n && dateItem?.cellOperation!='DATE_WEEK'\n && dateItem?.cellOperation!='DATE_QUARTER'\"\n >\n <div class=\"date-value-editor\" [class.dynamic-value]=\"dateValueMode(dateItem.cellValue) !== 'FIXED'\">\n <nz-select\n [ngModel]=\"dateValueMode(dateItem.cellValue)\"\n (ngModelChange)=\"dateValueModeChange($event, dateItem)\"\n nzPlaceHolder=\"\u65E5\u671F\u6765\u6E90\"\n >\n <nz-option\n *ngFor=\"let option of DateValueModeData\"\n [nzValue]=\"option.value\"\n [nzLabel]=\"option.label\"\n ></nz-option>\n </nz-select>\n <nz-date-picker\n *ngIf=\"dateValueMode(dateItem.cellValue) === 'FIXED'\"\n [(ngModel)]=\"dateItem.cellValue\"\n [nzShowTime]=\"dateItem.fieldType === 'DATETIME'\"\n [nzFormat]=\"dateItem.fieldType === 'DATETIME' ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd'\"\n nzPlacement=\"bottomLeft\"\n nzPlaceHolder=\"\u8BF7\u9009\u62E9\u65E5\u671F\"\n [nzAllowClear]=\"true\"\n ></nz-date-picker>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tmpEmpty>\n <div class=\"empty\">\r\n <div class=\"image\"><img src=\"assets/images/default/empty2.png\" /></div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host ::ng-deep{display:flex;flex-direction:column;font-size:12px;border:1px solid #eaeaea;border-radius:4px}:host ::ng-deep .header-box{display:flex;align-items:center;padding:8px 10px;background:#edeff3;border-bottom:1px solid #eaeaea}:host ::ng-deep .header-box i{margin-left:15px}:host ::ng-deep .body-box{display:block;width:100%;padding:15px 0 0;overflow-x:auto}:host ::ng-deep .body-box ul{position:relative;display:flex;align-items:flex-start;width:max-content;min-width:100%;margin:0;padding:0 10px 10px}:host ::ng-deep .body-box ul li{display:flex;flex-direction:column;padding:0 10px 0 0}:host ::ng-deep .body-box .btnAdd{padding:8px 10px;border-top:1px solid #eaeaea}:host ::ng-deep .body-box .leftBracket,:host ::ng-deep .body-box .rightBracket{width:60px}:host ::ng-deep .body-box .cellOperation{width:140px}:host ::ng-deep .body-box .conditionTable,:host ::ng-deep .body-box .conditionField{width:200px}:host ::ng-deep .body-box .cellValue{width:190px}:host ::ng-deep .body-box .cellValue nz-select,:host ::ng-deep .body-box .cellValue nz-input-number,:host ::ng-deep .body-box .cellValue nz-date-picker,:host ::ng-deep .body-box .cellValue .ant-input,:host ::ng-deep .body-box .cellValue .ant-input-number,:host ::ng-deep .body-box .cellValue .ant-picker{width:100%}:host ::ng-deep .body-box .value-source-select{margin-bottom:6px}:host ::ng-deep .body-box .date-cell-value{width:330px}:host ::ng-deep .body-box .date-value-editor{display:grid;grid-template-columns:112px minmax(200px,1fr);gap:8px;align-items:center;width:100%}:host ::ng-deep .body-box .date-value-editor.dynamic-value{grid-template-columns:minmax(180px,1fr)}:host ::ng-deep .body-box .date-value-editor nz-select,:host ::ng-deep .body-box .date-value-editor nz-date-picker,:host ::ng-deep .body-box .date-value-editor .ant-select,:host ::ng-deep .body-box .date-value-editor .ant-picker{width:100%}:host ::ng-deep .body-box .cellFunction{width:80px}:host ::ng-deep .between{margin:0 5px}:host ::ng-deep .empty{display:flex;padding:0 0 15px}:host ::ng-deep .empty .image{margin:auto}:host ::ng-deep .empty img{width:80px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: NzSelectModule }, { kind: "component", type: i4.NzOptionComponent, selector: "nz-option", inputs: ["nzTitle", "nzLabel", "nzValue", "nzKey", "nzDisabled", "nzHide", "nzCustomContent"], exportAs: ["nzOption"] }, { kind: "component", type: i4.NzSelectComponent, selector: "nz-select", inputs: ["nzId", "nzSize", "nzStatus", "nzOptionHeightPx", "nzOptionOverflowSize", "nzDropdownClassName", "nzDropdownMatchSelectWidth", "nzDropdownStyle", "nzNotFoundContent", "nzPlaceHolder", "nzPlacement", "nzMaxTagCount", "nzDropdownRender", "nzCustomTemplate", "nzSuffixIcon", "nzClearIcon", "nzRemoveIcon", "nzMenuItemSelectedIcon", "nzTokenSeparators", "nzMaxTagPlaceholder", "nzMaxMultipleCount", "nzMode", "nzFilterOption", "compareWith", "nzAllowClear", "nzBorderless", "nzShowSearch", "nzLoading", "nzAutoFocus", "nzAutoClearSearchValue", "nzServerSearch", "nzDisabled", "nzOpen", "nzSelectOnTab", "nzBackdrop", "nzOptions", "nzShowArrow"], outputs: ["nzOnSearch", "nzScrollToBottom", "nzOpenChange", "nzBlur", "nzFocus"], exportAs: ["nzSelect"] }, { kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i5.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "ngmodule", type: NzInputNumberModule }, { kind: "component", type: i6.NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzId", "nzSize", "nzPlaceHolder", "nzStatus", "nzStep", "nzMin", "nzMax", "nzPrecision", "nzParser", "nzFormatter", "nzDisabled", "nzReadOnly", "nzAutoFocus", "nzBordered", "nzKeyboard", "nzControls"], outputs: ["nzBlur", "nzFocus", "nzOnStep"], exportAs: ["nzInputNumber"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "directive", type: i7.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], nz-icon, [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "ngmodule", type: NzDatePickerModule }, { kind: "component", type: i8.NzDatePickerComponent, selector: "nz-date-picker,nz-week-picker,nz-month-picker,nz-quarter-picker,nz-year-picker,nz-range-picker", inputs: ["nzAllowClear", "nzAutoFocus", "nzDisabled", "nzBorderless", "nzInputReadOnly", "nzInline", "nzOpen", "nzDisabledDate", "nzLocale", "nzPlaceHolder", "nzPopupStyle", "nzDropdownClassName", "nzSize", "nzStatus", "nzFormat", "nzDateRender", "nzDisabledTime", "nzRenderExtraFooter", "nzShowToday", "nzMode", "nzShowNow", "nzRanges", "nzDefaultPickerValue", "nzSeparator", "nzSuffixIcon", "nzBackdrop", "nzId", "nzPlacement", "nzShowWeekNumber", "nzShowTime"], outputs: ["nzOnPanelChange", "nzOnCalendarChange", "nzOnOk", "nzOnOpenChange"], exportAs: ["nzDatePicker"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i9.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: GramDeonLookUpModule }, { kind: "component", type: i10.GramDeonLookUpComponent, selector: "gram-lookup", inputs: ["placeholder", "config", "data", "noSave"], outputs: ["valueChange"] }] });
|
|
202
295
|
}
|
|
203
296
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GramDeonFilterComponent, decorators: [{
|
|
204
297
|
type: Component,
|
|
@@ -213,7 +306,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
213
306
|
NzDatePickerModule,
|
|
214
307
|
NzIconModule,
|
|
215
308
|
GramDeonLookUpModule
|
|
216
|
-
], template: "<div class=\"header-box\">\r\n {{title}}\r\n <a (click)=\"addCondition()\">\r\n <i nz-icon nzType=\"plus-circle\"></i>\r\n \u65B0\u589E\r\n </a>\r\n</div>\r\n<div class=\"body-box\">\r\n <ng-container *ngIf=\"filterData!! && filterData.length>0;else tmpEmpty\">\r\n <ng-container *ngFor=\"let item of filterData;let i=index\">\r\n <ul>\r\n <li class=\"leftBracket\">\r\n <nz-select [(ngModel)]=\"item.leftBracket\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"leftBracket\">\r\n <nz-select [(ngModel)]=\"item.leftBracket2\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"cellOperation\">\r\n <nz-select [(ngModel)]=\"item.cellOperation\" nzAllowClear (ngModelChange)=\"operationChange($event,item)\">\r\n <ng-container *ngFor=\"let option of CompareConditionsData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li *ngIf=\"item?.cellOperation!='SQL_RULES'\" class=\"conditionTable\">\r\n <nz-select [(ngModel)]=\"item.cellTable\" nzAllowClear (ngModelChange)=\"tableChange($event,item)\">\r\n <ng-container *ngFor=\"let option of tableData\">\r\n <nz-option [nzValue]=\"option.code\" [nzLabel]=\"option.name\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n\r\n <li *ngIf=\"item?.cellOperation!='SQL_RULES'\" class=\"conditionField\">\r\n <nz-select [(ngModel)]=\"item.cellField\" nzAllowClear (ngModelChange)=\"fieldChange($event,item)\">\r\n <ng-container *ngFor=\"let option of getFieldData(item.cellTable)\">\r\n <nz-option [nzValue]=\"option.code\" [nzLabel]=\"option.name\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li *ngIf=\"item?.cellOperation!='SQL_RULES'\">\r\n <ng-container *ngIf=\"item.cellTable!! && item.cellField!! && item.fieldType!!\">\r\n <div class=\"cellValue\">\r\n <ng-container [ngSwitch]=\"item.fieldType\">\r\n <ng-container *ngSwitchCase=\"'BOOLEAN'\">\r\n <nz-select [(ngModel)]=\"item.cellValue\">\r\n <nz-option nzValue=\"0\" nzLabel=\"\u5426\"></nz-option>\r\n <nz-option nzValue=\"1\" nzLabel=\"\u662F\"></nz-option>\r\n </nz-select>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'DATETIME'\">\r\n <ng-container\r\n *ngIf=\"item?.cellOperation!='DATE_YEAR' \r\n && item?.cellOperation!='DATE_MONTH' \r\n && item?.cellOperation!='DATE_WEEK' \r\n && item?.cellOperation!='DATE_QUARTER'\"\r\n >\r\n <nz-date-picker nzShowTime nzFormat=\"yyyy-MM-dd HH:mm:ss\" [(ngModel)]=\"item.cellValue\"></nz-date-picker>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'INT'\">\r\n <nz-input-number [(ngModel)]=\"item.cellValue\" [nzStep]=\"1\" [nzPrecision]=\"0\"></nz-input-number>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'FLOAT'\">\r\n <nz-input-number [(ngModel)]=\"item.cellValue\" [nzStep]=\"1\" [nzPrecision]=\"2\"></nz-input-number>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'ITEM'\">\r\n <ng-container *ngIf=\"item?.cellMultiple==true;else tmp1\">\u6682\u4E0D\u652F\u6301\u591A\u9009</ng-container>\r\n <ng-template #tmp1>\r\n <nz-select [(ngModel)]=\"item.cellValue\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of getItemData(item.cellTable,item.cellField)\">\r\n <nz-option [nzValue]=\"option.code\" [nzLabel]=\"option.name\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'REF'\">\r\n <ng-container *ngIf=\"item?.cellMultiple==true;else tmp2\">\u6682\u4E0D\u652F\u6301\u591A\u9009</ng-container>\r\n <ng-template #tmp2>\r\n <gram-lookup\r\n [config]=\"item.cellValueConfig\"\r\n [data]=\"item.cellValueInfo\"\r\n (valueChange)=\"refDataChange($event,item)\"\r\n ></gram-lookup>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <input nz-input [(ngModel)]=\"item.cellValue\" />\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </li>\r\n <li *ngIf=\"item?.cellOperation=='SQL_RULES' \">\r\n <div class=\"cellValue\">\r\n <input nz-input [(ngModel)]=\"item.cellValue\" />\r\n </div>\r\n </li>\r\n <li class=\"rightBracket\">\r\n <nz-select [(ngModel)]=\"item.rightBracket\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"rightBracket\">\r\n <nz-select [(ngModel)]=\"item.rightBracket2\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"cellFunction\">\r\n <nz-select [(ngModel)]=\"item.cellFunction\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of FilterTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <div class=\"btnDel\">\r\n <a (click)=\"delCondition(i)\">\r\n <i nz-icon nzType=\"delete\"></i>\r\n </a>\r\n </div>\r\n </ul>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #tmpEmpty>\r\n <div class=\"empty\">\r\n <div class=\"image\"><img src=\"assets/images/default/empty2.png\" /></div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host ::ng-deep{display:flex;flex-direction:column;font-size:12px;border:1px solid #eaeaea;border-radius:4px}:host ::ng-deep .header-box{display:flex;align-items:center;padding:8px 10px;background:#edeff3;border-bottom:1px solid #eaeaea}:host ::ng-deep .header-box i{margin-left:15px}:host ::ng-deep .body-box{display:inline-block;padding:15px 0 0}:host ::ng-deep .body-box ul{position:relative;display:flex;align-items:center;margin:0;padding:0 10px 10px}:host ::ng-deep .body-box ul li{display:flex;flex-direction:column;padding:0 10px 0 0}:host ::ng-deep .body-box .btnAdd{padding:8px 10px;border-top:1px solid #eaeaea}:host ::ng-deep .body-box .leftBracket,:host ::ng-deep .body-box .rightBracket{width:60px}:host ::ng-deep .body-box .cellOperation{width:140px}:host ::ng-deep .body-box .conditionTable,:host ::ng-deep .body-box .conditionField{width:200px}:host ::ng-deep .body-box .cellValue nz-select,:host ::ng-deep .body-box .cellValue .ant-input{width:190px}:host ::ng-deep .body-box .cellFunction{width:80px}:host ::ng-deep .between{margin:0 5px}:host ::ng-deep .empty{display:flex;padding:0 0 15px}:host ::ng-deep .empty .image{margin:auto}:host ::ng-deep .empty img{width:80px}\n"] }]
|
|
309
|
+
], template: "<div class=\"header-box\">\r\n {{title}}\r\n <a (click)=\"addCondition()\">\r\n <i nz-icon nzType=\"plus-circle\"></i>\r\n \u65B0\u589E\r\n </a>\r\n</div>\r\n<div class=\"body-box\">\r\n <ng-container *ngIf=\"filterData!! && filterData.length>0;else tmpEmpty\">\r\n <ng-container *ngFor=\"let item of filterData;let i=index\">\r\n <ul>\r\n <li class=\"leftBracket\">\r\n <nz-select [(ngModel)]=\"item.leftBracket\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"leftBracket\">\r\n <nz-select [(ngModel)]=\"item.leftBracket2\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"cellOperation\">\r\n <nz-select [(ngModel)]=\"item.cellOperation\" nzAllowClear (ngModelChange)=\"operationChange($event,item)\">\r\n <ng-container *ngFor=\"let option of CompareConditionsData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li *ngIf=\"item?.cellOperation!='SQL_RULES'\" class=\"conditionTable\">\r\n <nz-select [(ngModel)]=\"item.cellTable\" nzAllowClear (ngModelChange)=\"tableChange($event,item)\">\r\n <ng-container *ngFor=\"let option of tableData\">\r\n <nz-option [nzValue]=\"option.code\" [nzLabel]=\"option.name\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n\r\n <li *ngIf=\"item?.cellOperation!='SQL_RULES'\" class=\"conditionField\">\r\n <nz-select [(ngModel)]=\"item.cellField\" nzAllowClear (ngModelChange)=\"fieldChange($event,item)\">\r\n <ng-container *ngFor=\"let option of getFieldData(item.cellTable)\">\r\n <nz-option [nzValue]=\"option.code\" [nzLabel]=\"option.name\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li *ngIf=\"item?.cellOperation!='SQL_RULES'\">\r\n <ng-container *ngIf=\"item.cellTable!! && item.cellField!! && item.fieldType!!\">\r\n <div class=\"cellValue\" [class.date-cell-value]=\"isDateField(item.fieldType)\">\n <nz-select\n *ngIf=\"argumentData.length\"\n class=\"value-source-select\"\n [ngModel]=\"valueSourceMode(item)\"\n (ngModelChange)=\"valueSourceModeChange($event, item)\"\n >\n <nz-option nzValue=\"FIXED\" nzLabel=\"\u56FA\u5B9A\u503C\"></nz-option>\n <nz-option nzValue=\"ARGUMENT\" nzLabel=\"\u6A21\u677F\u53C2\u6570\"></nz-option>\n </nz-select>\n <nz-select\n *ngIf=\"argumentData.length && valueSourceMode(item) === 'ARGUMENT'\"\n [ngModel]=\"argumentCode(item)\"\n (ngModelChange)=\"argumentChange($event, item)\"\n nzPlaceHolder=\"\u8BF7\u9009\u62E9\u6A21\u677F\u53C2\u6570\"\n >\n <nz-option\n *ngFor=\"let argument of argumentData\"\n [nzValue]=\"argument.argumentCode\"\n [nzLabel]=\"argument.argumentName\"\n ></nz-option>\n </nz-select>\n <ng-container *ngIf=\"valueSourceMode(item) === 'FIXED'\">\n <ng-container [ngSwitch]=\"item.fieldType\">\n <ng-container *ngSwitchCase=\"'BOOLEAN'\">\r\n <nz-select [(ngModel)]=\"item.cellValue\">\r\n <nz-option nzValue=\"0\" nzLabel=\"\u5426\"></nz-option>\r\n <nz-option nzValue=\"1\" nzLabel=\"\u662F\"></nz-option>\r\n </nz-select>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'DATETIME'\">\n <ng-container *ngTemplateOutlet=\"dateValueEditor; context: { $implicit: item }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'DATE'\">\n <ng-container *ngTemplateOutlet=\"dateValueEditor; context: { $implicit: item }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'INT'\">\r\n <nz-input-number [(ngModel)]=\"item.cellValue\" [nzStep]=\"1\" [nzPrecision]=\"0\"></nz-input-number>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'FLOAT'\">\r\n <nz-input-number [(ngModel)]=\"item.cellValue\" [nzStep]=\"1\" [nzPrecision]=\"2\"></nz-input-number>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'ITEM'\">\r\n <ng-container *ngIf=\"item?.cellMultiple==true;else tmp1\">\u6682\u4E0D\u652F\u6301\u591A\u9009</ng-container>\r\n <ng-template #tmp1>\r\n <nz-select [(ngModel)]=\"item.cellValue\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of getItemData(item.cellTable,item.cellField)\">\r\n <nz-option [nzValue]=\"option.code\" [nzLabel]=\"option.name\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'REF'\">\r\n <ng-container *ngIf=\"item?.cellMultiple==true;else tmp2\">\u6682\u4E0D\u652F\u6301\u591A\u9009</ng-container>\r\n <ng-template #tmp2>\r\n <gram-lookup\r\n [config]=\"item.cellValueConfig\"\r\n [data]=\"item.cellValueInfo\"\r\n (valueChange)=\"refDataChange($event,item)\"\r\n ></gram-lookup>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <input nz-input [(ngModel)]=\"item.cellValue\" />\r\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\r\n </li>\r\n <li *ngIf=\"item?.cellOperation=='SQL_RULES' \">\r\n <div class=\"cellValue\">\r\n <input nz-input [(ngModel)]=\"item.cellValue\" />\r\n </div>\r\n </li>\r\n <li class=\"rightBracket\">\r\n <nz-select [(ngModel)]=\"item.rightBracket\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"rightBracket\">\r\n <nz-select [(ngModel)]=\"item.rightBracket2\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"cellFunction\">\r\n <nz-select [(ngModel)]=\"item.cellFunction\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of FilterTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <div class=\"btnDel\">\r\n <a (click)=\"delCondition(i)\">\r\n <i nz-icon nzType=\"delete\"></i>\r\n </a>\r\n </div>\r\n </ul>\r\n </ng-container>\r\n </ng-container>\r\n</div>\n\n<ng-template #dateValueEditor let-dateItem>\n <ng-container\n *ngIf=\"dateItem?.cellOperation!='DATE_YEAR'\n && dateItem?.cellOperation!='DATE_MONTH'\n && dateItem?.cellOperation!='DATE_WEEK'\n && dateItem?.cellOperation!='DATE_QUARTER'\"\n >\n <div class=\"date-value-editor\" [class.dynamic-value]=\"dateValueMode(dateItem.cellValue) !== 'FIXED'\">\n <nz-select\n [ngModel]=\"dateValueMode(dateItem.cellValue)\"\n (ngModelChange)=\"dateValueModeChange($event, dateItem)\"\n nzPlaceHolder=\"\u65E5\u671F\u6765\u6E90\"\n >\n <nz-option\n *ngFor=\"let option of DateValueModeData\"\n [nzValue]=\"option.value\"\n [nzLabel]=\"option.label\"\n ></nz-option>\n </nz-select>\n <nz-date-picker\n *ngIf=\"dateValueMode(dateItem.cellValue) === 'FIXED'\"\n [(ngModel)]=\"dateItem.cellValue\"\n [nzShowTime]=\"dateItem.fieldType === 'DATETIME'\"\n [nzFormat]=\"dateItem.fieldType === 'DATETIME' ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd'\"\n nzPlacement=\"bottomLeft\"\n nzPlaceHolder=\"\u8BF7\u9009\u62E9\u65E5\u671F\"\n [nzAllowClear]=\"true\"\n ></nz-date-picker>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tmpEmpty>\n <div class=\"empty\">\r\n <div class=\"image\"><img src=\"assets/images/default/empty2.png\" /></div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host ::ng-deep{display:flex;flex-direction:column;font-size:12px;border:1px solid #eaeaea;border-radius:4px}:host ::ng-deep .header-box{display:flex;align-items:center;padding:8px 10px;background:#edeff3;border-bottom:1px solid #eaeaea}:host ::ng-deep .header-box i{margin-left:15px}:host ::ng-deep .body-box{display:block;width:100%;padding:15px 0 0;overflow-x:auto}:host ::ng-deep .body-box ul{position:relative;display:flex;align-items:flex-start;width:max-content;min-width:100%;margin:0;padding:0 10px 10px}:host ::ng-deep .body-box ul li{display:flex;flex-direction:column;padding:0 10px 0 0}:host ::ng-deep .body-box .btnAdd{padding:8px 10px;border-top:1px solid #eaeaea}:host ::ng-deep .body-box .leftBracket,:host ::ng-deep .body-box .rightBracket{width:60px}:host ::ng-deep .body-box .cellOperation{width:140px}:host ::ng-deep .body-box .conditionTable,:host ::ng-deep .body-box .conditionField{width:200px}:host ::ng-deep .body-box .cellValue{width:190px}:host ::ng-deep .body-box .cellValue nz-select,:host ::ng-deep .body-box .cellValue nz-input-number,:host ::ng-deep .body-box .cellValue nz-date-picker,:host ::ng-deep .body-box .cellValue .ant-input,:host ::ng-deep .body-box .cellValue .ant-input-number,:host ::ng-deep .body-box .cellValue .ant-picker{width:100%}:host ::ng-deep .body-box .value-source-select{margin-bottom:6px}:host ::ng-deep .body-box .date-cell-value{width:330px}:host ::ng-deep .body-box .date-value-editor{display:grid;grid-template-columns:112px minmax(200px,1fr);gap:8px;align-items:center;width:100%}:host ::ng-deep .body-box .date-value-editor.dynamic-value{grid-template-columns:minmax(180px,1fr)}:host ::ng-deep .body-box .date-value-editor nz-select,:host ::ng-deep .body-box .date-value-editor nz-date-picker,:host ::ng-deep .body-box .date-value-editor .ant-select,:host ::ng-deep .body-box .date-value-editor .ant-picker{width:100%}:host ::ng-deep .body-box .cellFunction{width:80px}:host ::ng-deep .between{margin:0 5px}:host ::ng-deep .empty{display:flex;padding:0 0 15px}:host ::ng-deep .empty .image{margin:auto}:host ::ng-deep .empty img{width:80px}\n"] }]
|
|
217
310
|
}], ctorParameters: () => [{ type: i1._HttpClient }], propDecorators: { title: [{
|
|
218
311
|
type: Input
|
|
219
312
|
}], data: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.filter.mjs","sources":["../../../../packages/biz-comm/components/filter/src/default/index.ts","../../../../packages/biz-comm/components/filter/src/default/index.html","../../../../packages/biz-comm/components/filter/src/compare-filter/index.ts","../../../../packages/biz-comm/components/filter/src/compare-filter/index.html","../../../../packages/biz-comm/components/filter/src/index.module.ts","../../../../packages/biz-comm/components/filter/components.filter.ts"],"sourcesContent":["import { Component, OnInit, Input, EventEmitter, Output, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { _HttpClient } from '@delon/theme';\r\nimport { NzSelectModule } from 'ng-zorro-antd/select';\r\nimport { NzInputModule } from 'ng-zorro-antd/input';\r\nimport { NzInputNumberModule } from 'ng-zorro-antd/input-number';\r\nimport { NzButtonModule } from 'ng-zorro-antd/button';\r\nimport { NzDatePickerModule } from 'ng-zorro-antd/date-picker';\r\nimport { NzIconModule } from 'ng-zorro-antd/icon';\r\n\r\nimport { GramDeonLookUpModule } from '@ebuilding/biz-comm/components/lookup';\r\nimport { ModuleAPI } from '@ebuilding/base/shared.var/shared.constant';\r\nimport { FilterType, CompareType, CompareConditions, BracketType, SpecialField } from '@ebuilding/base/shared.util/static';\r\nimport _ from 'lodash';\r\n\r\n@Component({\r\n selector: 'gram-filter',\r\n templateUrl: './index.html',\r\n styleUrls: ['./index.less'],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NzSelectModule,\r\n NzInputModule,\r\n NzInputNumberModule,\r\n NzButtonModule,\r\n NzDatePickerModule,\r\n NzIconModule,\r\n GramDeonLookUpModule\r\n ]\r\n})\r\nexport class GramDeonFilterComponent implements OnInit, OnChanges {\r\n _data: any = null;\r\n loading: boolean = true;\r\n listItem: any[] = [];\r\n\r\n @Input() title: any = null;\r\n\r\n @Input() data: any = null;\r\n\r\n tableData: any[] = [];\r\n filterData: any[] = [];\r\n itemOptions: any = {};\r\n\r\n @Output() dataChange: EventEmitter<any> = new EventEmitter();\r\n FilterTypeData: any[] = FilterType();\r\n BracketTypeData: any[] = BracketType();\r\n SpecialFieldData: any[] = SpecialField();\r\n CompareTypeData: any[] = CompareType();\r\n CompareConditionsData: any[] = CompareConditions().filter((item: any) => {\r\n return item.value != 'IN' && item.value != 'LIKE' && item.value != 'LEFT_LIKE' && item.value != 'RIGHT_LIKE';\r\n });\r\n\r\n constructor(public http: _HttpClient) { }\r\n\r\n ngOnInit() { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['data']) {\r\n if (this.data!! && this.data.tableData!!) {\r\n this.tableData = _.cloneDeep(this.data.tableData);\r\n if (this.data.filterData!! && this.data.filterData.length > 0) {\r\n this.data.filterData.forEach((item: any) => {\r\n let arrTable: any[] = this.tableData.filter((table: any) => {\r\n return table.code == item.cellTable;\r\n });\r\n if (arrTable!! && arrTable.length > 0) {\r\n if (arrTable[0].listField!! && arrTable[0].listField.length > 0 && item.cellField!!) {\r\n let arrField: any[] = arrTable[0].listField.filter((field: any) => {\r\n return field.code == item.cellField;\r\n });\r\n if (arrField!! && arrField.length > 0) {\r\n item['fieldType'] = arrField[0].type;\r\n }\r\n }\r\n this.initValueConfig(item, arrTable[0].name);\r\n }\r\n });\r\n }\r\n this.filterData = this.data.filterData;\r\n this.initPageData();\r\n }\r\n }\r\n }\r\n\r\n initPageData() {\r\n let listItemId: any[] = [];\r\n this.tableData.forEach((table: any) => {\r\n if (table!! && table.listField!! && table.listField.length > 0) {\r\n table.listField.forEach((field: any) => {\r\n if (field.type == 'ITEM' && field.refId!!) {\r\n listItemId.push(field.refId);\r\n }\r\n });\r\n }\r\n });\r\n listItemId = [...new Set(listItemId)];\r\n if (listItemId != null && listItemId.length > 0) {\r\n this.http.post(`${ModuleAPI.user}/user/sys/listItemByIds`, { idList: listItemId }).subscribe((res: any) => {\r\n if (res.success && res.result!! && res.result.length > 0) {\r\n res.result.forEach((item: any) => {\r\n this.itemOptions[item.id] = item.listDetail;\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n addCondition() {\r\n if (this.filterData!!) {\r\n this.filterData = [...this.filterData, {}];\r\n } else {\r\n this.filterData = [{}];\r\n }\r\n this.dataChange.emit(this.filterData);\r\n }\r\n\r\n delCondition(i: number) {\r\n if (this.filterData!!) {\r\n this.filterData = this.filterData.filter((a: any, index: number) => {\r\n return index != i;\r\n });\r\n }\r\n this.dataChange.emit(this.filterData);\r\n }\r\n\r\n getFieldData(cellTable: any) {\r\n let fieldArray: any[] = [];\r\n this.tableData.forEach((item: any) => {\r\n if (item.code == cellTable) {\r\n fieldArray = item.listField;\r\n }\r\n });\r\n return fieldArray;\r\n }\r\n\r\n /**\r\n * 获取常用参数\r\n * @param cellTable\r\n * @param cellField\r\n * @returns\r\n */\r\n getItemData(cellTable: any, cellField: any) {\r\n let array: any[] = [];\r\n this.tableData.forEach((table: any) => {\r\n if (table.code == cellTable) {\r\n table.listField.forEach((field: any) => {\r\n if (field.type == 'ITEM' && field.code == cellField && field.refId!!) {\r\n if (this.itemOptions!! && this.itemOptions[field.refId]!!) {\r\n array = this.itemOptions[field.refId];\r\n }\r\n }\r\n });\r\n }\r\n });\r\n return array;\r\n }\r\n\r\n tableChange(e: any, item: any) {\r\n item['cellField'] = null;\r\n item['fieldType'] = null;\r\n item['cellValue'] = null;\r\n item['cellMultiple'] = null;\r\n }\r\n\r\n fieldChange(e: any, item: any) {\r\n item['fieldType'] = null;\r\n item['cellValue'] = null;\r\n item['cellMultiple'] = null;\r\n item['cellValueConfig'] = null;\r\n if (item.cellTable!! && item.cellField!!) {\r\n this.tableData.forEach((t: any) => {\r\n if (t.code == item.cellTable) {\r\n t.listField.forEach((f: any) => {\r\n if (f.code == item.cellField) {\r\n item.fieldType = f.type;\r\n item.cellMultiple = f.multiple;\r\n\r\n this.initValueConfig(item, t.name);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n operationChange(e: any, item: any) {\r\n if (item.cellOperation == 'SQL_RULES') {\r\n item['cellTable'] = null;\r\n item['cellField'] = null;\r\n item['parameterTable'] = null;\r\n item['parameterField'] = null;\r\n item['cellValue'] = null;\r\n }\r\n }\r\n\r\n refDataChange(e: any, item: any) {\r\n if (e!! && e.id!!) {\r\n item['cellValue'] = e.id;\r\n item['cellValueInfo'] = e;\r\n } else {\r\n item['cellValue'] = null;\r\n item['cellValueInfo'] = null;\r\n }\r\n }\r\n\r\n initValueConfig(item: any, tableName: any) {\r\n item.cellValueConfig = {\r\n type: 'ref2',\r\n label: tableName,\r\n selectType: 'single',\r\n isRowData: true,\r\n parameter: {\r\n tableCode: item.cellTable,\r\n fieldCode: item.cellField,\r\n },\r\n };\r\n }\r\n}\r\n","<div class=\"header-box\">\r\n {{title}}\r\n <a (click)=\"addCondition()\">\r\n <i nz-icon nzType=\"plus-circle\"></i>\r\n 新增\r\n </a>\r\n</div>\r\n<div class=\"body-box\">\r\n <ng-container *ngIf=\"filterData!! && filterData.length>0;else tmpEmpty\">\r\n <ng-container *ngFor=\"let item of filterData;let i=index\">\r\n <ul>\r\n <li class=\"leftBracket\">\r\n <nz-select [(ngModel)]=\"item.leftBracket\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"leftBracket\">\r\n <nz-select [(ngModel)]=\"item.leftBracket2\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"cellOperation\">\r\n <nz-select [(ngModel)]=\"item.cellOperation\" nzAllowClear (ngModelChange)=\"operationChange($event,item)\">\r\n <ng-container *ngFor=\"let option of CompareConditionsData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li *ngIf=\"item?.cellOperation!='SQL_RULES'\" class=\"conditionTable\">\r\n <nz-select [(ngModel)]=\"item.cellTable\" nzAllowClear (ngModelChange)=\"tableChange($event,item)\">\r\n <ng-container *ngFor=\"let option of tableData\">\r\n <nz-option [nzValue]=\"option.code\" [nzLabel]=\"option.name\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n\r\n <li *ngIf=\"item?.cellOperation!='SQL_RULES'\" class=\"conditionField\">\r\n <nz-select [(ngModel)]=\"item.cellField\" nzAllowClear (ngModelChange)=\"fieldChange($event,item)\">\r\n <ng-container *ngFor=\"let option of getFieldData(item.cellTable)\">\r\n <nz-option [nzValue]=\"option.code\" [nzLabel]=\"option.name\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li *ngIf=\"item?.cellOperation!='SQL_RULES'\">\r\n <ng-container *ngIf=\"item.cellTable!! && item.cellField!! && item.fieldType!!\">\r\n <div class=\"cellValue\">\r\n <ng-container [ngSwitch]=\"item.fieldType\">\r\n <ng-container *ngSwitchCase=\"'BOOLEAN'\">\r\n <nz-select [(ngModel)]=\"item.cellValue\">\r\n <nz-option nzValue=\"0\" nzLabel=\"否\"></nz-option>\r\n <nz-option nzValue=\"1\" nzLabel=\"是\"></nz-option>\r\n </nz-select>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'DATETIME'\">\r\n <ng-container\r\n *ngIf=\"item?.cellOperation!='DATE_YEAR' \r\n && item?.cellOperation!='DATE_MONTH' \r\n && item?.cellOperation!='DATE_WEEK' \r\n && item?.cellOperation!='DATE_QUARTER'\"\r\n >\r\n <nz-date-picker nzShowTime nzFormat=\"yyyy-MM-dd HH:mm:ss\" [(ngModel)]=\"item.cellValue\"></nz-date-picker>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'INT'\">\r\n <nz-input-number [(ngModel)]=\"item.cellValue\" [nzStep]=\"1\" [nzPrecision]=\"0\"></nz-input-number>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'FLOAT'\">\r\n <nz-input-number [(ngModel)]=\"item.cellValue\" [nzStep]=\"1\" [nzPrecision]=\"2\"></nz-input-number>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'ITEM'\">\r\n <ng-container *ngIf=\"item?.cellMultiple==true;else tmp1\">暂不支持多选</ng-container>\r\n <ng-template #tmp1>\r\n <nz-select [(ngModel)]=\"item.cellValue\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of getItemData(item.cellTable,item.cellField)\">\r\n <nz-option [nzValue]=\"option.code\" [nzLabel]=\"option.name\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'REF'\">\r\n <ng-container *ngIf=\"item?.cellMultiple==true;else tmp2\">暂不支持多选</ng-container>\r\n <ng-template #tmp2>\r\n <gram-lookup\r\n [config]=\"item.cellValueConfig\"\r\n [data]=\"item.cellValueInfo\"\r\n (valueChange)=\"refDataChange($event,item)\"\r\n ></gram-lookup>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <input nz-input [(ngModel)]=\"item.cellValue\" />\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </li>\r\n <li *ngIf=\"item?.cellOperation=='SQL_RULES' \">\r\n <div class=\"cellValue\">\r\n <input nz-input [(ngModel)]=\"item.cellValue\" />\r\n </div>\r\n </li>\r\n <li class=\"rightBracket\">\r\n <nz-select [(ngModel)]=\"item.rightBracket\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"rightBracket\">\r\n <nz-select [(ngModel)]=\"item.rightBracket2\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"cellFunction\">\r\n <nz-select [(ngModel)]=\"item.cellFunction\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of FilterTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <div class=\"btnDel\">\r\n <a (click)=\"delCondition(i)\">\r\n <i nz-icon nzType=\"delete\"></i>\r\n </a>\r\n </div>\r\n </ul>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #tmpEmpty>\r\n <div class=\"empty\">\r\n <div class=\"image\"><img src=\"assets/images/default/empty2.png\" /></div>\r\n </div>\r\n</ng-template>\r\n","import { Component, OnInit, Input, EventEmitter, Output, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { NzSelectModule } from 'ng-zorro-antd/select';\r\nimport { NzInputModule } from 'ng-zorro-antd/input';\r\nimport { NzInputNumberModule } from 'ng-zorro-antd/input-number';\r\nimport { NzButtonModule } from 'ng-zorro-antd/button';\r\nimport { NzDatePickerModule } from 'ng-zorro-antd/date-picker';\r\nimport { NzIconModule } from 'ng-zorro-antd/icon';\r\n\r\nimport { GramDeonLookUpModule } from '@ebuilding/biz-comm/components/lookup';\r\nimport { FilterType, CompareType, CompareConditions, BracketType, SpecialField, CompareFieldType } from '@ebuilding/base/shared.util/static';\r\nimport _ from 'lodash';\r\n\r\nexport interface IData {\r\n tableCode?: any;\r\n tableFieldData: any[];\r\n sourceTableData: any[];\r\n fieldOptions: any;\r\n filterData: any[];\r\n}\r\n\r\n@Component({\r\n selector: 'gram-filter-compare',\r\n templateUrl: './index.html',\r\n styleUrls: ['./index.less'],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NzSelectModule,\r\n NzInputModule,\r\n NzInputNumberModule,\r\n NzButtonModule,\r\n NzDatePickerModule,\r\n NzIconModule,\r\n GramDeonLookUpModule\r\n ]\r\n})\r\nexport class GramFilterCompareComponent implements OnInit, OnChanges {\r\n loading: boolean = true;\r\n\r\n /**\r\n * 常量\r\n */\r\n FilterTypeData: any[] = FilterType();\r\n BracketTypeData: any[] = BracketType();\r\n SpecialFieldData: any[] = SpecialField();\r\n CompareTypeData: any[] = CompareType();\r\n CompareFieldTypeData: any[] = CompareFieldType();\r\n CompareConditionsData: any[] = CompareConditions().filter((item: any) => {\r\n return item.value != 'IN' && item.value != 'LIKE' && item.value != 'LEFT_LIKE' && item.value != 'RIGHT_LIKE';\r\n });\r\n\r\n /**\r\n * 基础数据\r\n */\r\n tableFieldData: any[];\r\n sourceTableData: any[];\r\n fieldOptions: any;\r\n filterData: any[] = [];\r\n\r\n @Input() title: any = null;\r\n\r\n @Input() data: IData;\r\n\r\n @Output() dataChange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['data']) {\r\n if (this.data!!) {\r\n this.tableFieldData = _.cloneDeep(this.data.tableFieldData);\r\n this.sourceTableData = _.cloneDeep(this.data.sourceTableData);\r\n this.fieldOptions = _.cloneDeep(this.data.fieldOptions);\r\n this.filterData = this.data.filterData;\r\n if (this.filterData!! && this.filterData.length > 0) {\r\n this.filterData.forEach((a: any) => {\r\n this.tableFieldData.forEach((b: any) => {\r\n if (b.value == a.cellField) {\r\n a['cellFieldType'] = b.type;\r\n a['cellFieldMultiple'] = b.multiple;\r\n if (this.fieldOptions!! && this.fieldOptions[a.cellField]!!) {\r\n a['cellFieldOptions'] = this.fieldOptions[a.cellField];\r\n }\r\n }\r\n });\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n addCondition() {\r\n if (this.filterData!!) {\r\n this.filterData = [\r\n ...this.filterData,\r\n {\r\n cellOperation: 'EQ',\r\n cellType: 'FIELD',\r\n },\r\n ];\r\n } else {\r\n this.filterData = [\r\n {\r\n cellOperation: 'EQ',\r\n cellType: 'FIELD',\r\n },\r\n ];\r\n }\r\n this.dataChange.emit(this.filterData);\r\n }\r\n\r\n delCondition(i: number) {\r\n if (this.filterData!!) {\r\n this.filterData = this.filterData.filter((a: any, index: number) => {\r\n return index != i;\r\n });\r\n }\r\n this.dataChange.emit(this.filterData);\r\n }\r\n\r\n cellFieldChange(e: any, item: any) {\r\n item['cellFieldType'] = null;\r\n item['cellFieldOptions'] = null;\r\n item['cellFieldMultiple'] = null;\r\n if (item.cellField!!) {\r\n this.tableFieldData.forEach((a: any) => {\r\n if (a.value == item.cellField) {\r\n item['cellFieldType'] = a.type;\r\n item['cellFieldMultiple'] = a.multiple;\r\n if (this.fieldOptions!! && this.fieldOptions[item.cellField]!!) {\r\n item['cellFieldOptions'] = this.fieldOptions[item.cellField];\r\n }\r\n this.initValueConfig(item, a.name);\r\n }\r\n });\r\n }\r\n this.dataChange.emit(this.filterData);\r\n }\r\n\r\n tableChange(e: any, item: any) {\r\n item['parameterField'] = null;\r\n item['cellValue'] = null;\r\n this.dataChange.emit(this.filterData);\r\n }\r\n\r\n getFieldData(parameterTable: any) {\r\n let arr: any[] = [];\r\n this.sourceTableData.forEach((item: any) => {\r\n if (item.code == parameterTable) {\r\n arr = item.listField;\r\n }\r\n });\r\n return arr;\r\n }\r\n\r\n operationChange(e: any, item: any) {\r\n if (item.cellOperation == 'SQL_RULES') {\r\n item['cellTable'] = null;\r\n item['cellField'] = null;\r\n item['parameterTable'] = null;\r\n item['parameterField'] = null;\r\n item['cellValue'] = null;\r\n }\r\n this.dataChange.emit(this.filterData);\r\n }\r\n\r\n refDataChange(e: any, item: any) {\r\n if (e!! && e.id!!) {\r\n item['cellValue'] = e.id;\r\n item['cellValueInfo'] = e;\r\n } else {\r\n item['cellValue'] = null;\r\n item['cellValueInfo'] = null;\r\n }\r\n }\r\n\r\n initValueConfig(item: any, tableName: any) {\r\n item.cellValueConfig = {\r\n type: 'ref2',\r\n label: tableName,\r\n selectType: 'single',\r\n isRowData: true,\r\n parameter: {\r\n tableCode: this.data?.tableCode,\r\n fieldCode: item.cellField,\r\n },\r\n };\r\n }\r\n}\r\n","<div class=\"header-box\">\r\n {{title}}\r\n <a (click)=\"addCondition()\">\r\n <i nz-icon nzType=\"plus-circle\"></i>\r\n 新增\r\n </a>\r\n</div>\r\n<div class=\"body-box\">\r\n <ng-container *ngIf=\"filterData!! && filterData.length>0;else tmpEmpty\">\r\n <ng-container *ngFor=\"let item of filterData;let i=index\">\r\n <ul>\r\n <li class=\"leftBracket\">\r\n <nz-select [(ngModel)]=\"item.leftBracket\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"leftBracket\">\r\n <nz-select [(ngModel)]=\"item.leftBracket2\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n\r\n <!-- 字段匹配类型 -->\r\n <li class=\"cellOperation\" *ngIf=\"item?.cellOperation!='SQL_RULES'\">\r\n <nz-select [(ngModel)]=\"item.cellType\">\r\n <ng-container *ngFor=\"let option of CompareFieldTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n\r\n <!-- 字段 -->\r\n <li class=\"cellOperation\" *ngIf=\"item?.cellOperation!='SQL_RULES'\">\r\n <nz-select [(ngModel)]=\"item.cellField\" nzAllowClear (ngModelChange)=\"cellFieldChange($event,item)\">\r\n <ng-container *ngFor=\"let option of tableFieldData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n\r\n <!-- 操作符 -->\r\n <li class=\"cellOperation\">\r\n <nz-select [(ngModel)]=\"item.cellOperation\" nzAllowClear (ngModelChange)=\"operationChange($event,item)\">\r\n <ng-container *ngFor=\"let option of CompareConditionsData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <ng-container *ngIf=\"item?.cellOperation!='SQL_RULES'\">\r\n <!-- 字段匹配类型--自定义值 -->\r\n <ng-container *ngIf=\"item.cellType=='CUSTOM' && item.cellFieldType!!\">\r\n <ng-container [ngSwitch]=\"item.cellFieldType\">\r\n <ng-container *ngSwitchCase=\"'ITEM'\">\r\n <li class=\"cellOperation\">\r\n <ng-container *ngIf=\"item?.cellFieldMultiple==true;else tmp1\">暂不支持多选</ng-container>\r\n <ng-template #tmp1>\r\n <nz-select [(ngModel)]=\"item.cellValue\">\r\n <ng-container *ngFor=\"let option of item.cellFieldOptions\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </ng-template>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'BOOLEAN'\">\r\n <li class=\"cellOperation\">\r\n <nz-select [(ngModel)]=\"item.cellValue\">\r\n <ng-container *ngFor=\"let option of item.cellFieldOptions\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'REF'\">\r\n <li class=\"cellOperation\">\r\n <ng-container *ngIf=\"item?.cellFieldMultiple==true;else tmp2\">暂不支持多选</ng-container>\r\n <ng-template #tmp2>\r\n <gram-lookup\r\n [config]=\"item.cellValueConfig\"\r\n [data]=\"item.cellValueInfo\"\r\n (valueChange)=\"refDataChange($event,item)\"\r\n ></gram-lookup>\r\n </ng-template>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'TEXT'\">\r\n <li class=\"cellOperation\">\r\n <input nz-input [(ngModel)]=\"item.cellValue\" />\r\n </li>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'TEXTAREA'\">\r\n <li class=\"cellOperation\">\r\n <input nz-input [(ngModel)]=\"item.cellValue\" />\r\n </li>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'INT'\">\r\n <li class=\"cellOperation\">\r\n <nz-input-number [(ngModel)]=\"item.cellValue\" [nzStep]=\"1\" [nzPrecision]=\"0\"></nz-input-number>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'FLOAT'\">\r\n <li class=\"cellOperation\">\r\n <nz-input-number [(ngModel)]=\"item.cellValue\" [nzStep]=\"1\"></nz-input-number>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'DATETIME'\">\r\n <li class=\"cellOperation\">\r\n <nz-date-picker [(ngModel)]=\"item.cellValue\" nzShowTime nzFormat=\"yyyy-MM-dd HH:mm:ss\"></nz-date-picker>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault> </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- 字段匹配类型--字段匹配 -->\r\n <ng-container *ngIf=\"item.cellType=='FIELD'\">\r\n <li class=\"conditionTable\">\r\n <nz-select [(ngModel)]=\"item.parameterTable\" nzAllowClear (ngModelChange)=\"tableChange($event,item)\">\r\n <ng-container *ngFor=\"let option of sourceTableData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n\r\n <li class=\"conditionField\">\r\n <nz-select [(ngModel)]=\"item.parameterField\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of getFieldData(item.parameterTable)\">\r\n <nz-option [nzValue]=\"option.code\" [nzLabel]=\"option.name\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <li *ngIf=\"item?.cellOperation=='SQL_RULES' \">\r\n <div class=\"cellValue\">\r\n <input nz-input [(ngModel)]=\"item.cellValue\" />\r\n </div>\r\n </li>\r\n <li class=\"rightBracket\">\r\n <nz-select [(ngModel)]=\"item.rightBracket\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"rightBracket\">\r\n <nz-select [(ngModel)]=\"item.rightBracket2\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"cellFunction\">\r\n <nz-select [(ngModel)]=\"item.cellFunction\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of FilterTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <div class=\"btnDel\">\r\n <a (click)=\"delCondition(i)\">\r\n <i nz-icon nzType=\"delete\"></i>\r\n </a>\r\n </div>\r\n </ul>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #tmpEmpty>\r\n <div class=\"empty\">\r\n <div class=\"image\"><img src=\"assets/images/default/empty2.png\" /></div>\r\n </div>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { GramDeonFilterComponent } from './default/index';\r\nimport { GramFilterCompareComponent } from './compare-filter/index';\r\n\r\nconst components: any[] = [GramDeonFilterComponent, GramFilterCompareComponent];\r\n\r\n@NgModule({\r\n imports: [\r\n ...components\r\n ],\r\n exports: [...components],\r\n})\r\nexport class GramDeonFilterModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i4","i5","i7","i8","i9"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"components.filter.mjs","sources":["../../../../packages/biz-comm/components/filter/src/default/index.ts","../../../../packages/biz-comm/components/filter/src/default/index.html","../../../../packages/biz-comm/components/filter/src/compare-filter/index.ts","../../../../packages/biz-comm/components/filter/src/compare-filter/index.html","../../../../packages/biz-comm/components/filter/src/index.module.ts","../../../../packages/biz-comm/components/filter/components.filter.ts"],"sourcesContent":["import { Component, OnInit, Input, EventEmitter, Output, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { _HttpClient } from '@delon/theme';\r\nimport { NzSelectModule } from 'ng-zorro-antd/select';\r\nimport { NzInputModule } from 'ng-zorro-antd/input';\r\nimport { NzInputNumberModule } from 'ng-zorro-antd/input-number';\r\nimport { NzButtonModule } from 'ng-zorro-antd/button';\r\nimport { NzDatePickerModule } from 'ng-zorro-antd/date-picker';\r\nimport { NzIconModule } from 'ng-zorro-antd/icon';\r\n\r\nimport { GramDeonLookUpModule } from '@ebuilding/biz-comm/components/lookup';\r\nimport { ModuleAPI } from '@ebuilding/base/shared.var/shared.constant';\r\nimport { FilterType, CompareType, CompareConditions, BracketType, SpecialField } from '@ebuilding/base/shared.util/static';\r\nimport _ from 'lodash';\r\n\r\n@Component({\r\n selector: 'gram-filter',\r\n templateUrl: './index.html',\r\n styleUrls: ['./index.less'],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NzSelectModule,\r\n NzInputModule,\r\n NzInputNumberModule,\r\n NzButtonModule,\r\n NzDatePickerModule,\r\n NzIconModule,\r\n GramDeonLookUpModule\r\n ]\r\n})\r\nexport class GramDeonFilterComponent implements OnInit, OnChanges {\n _data: any = null;\r\n loading: boolean = true;\r\n listItem: any[] = [];\r\n\r\n @Input() title: any = null;\r\n\r\n @Input() data: any = null;\r\n\r\n tableData: any[] = [];\n filterData: any[] = [];\n argumentData: any[] = [];\n itemOptions: any = {};\r\n\r\n @Output() dataChange: EventEmitter<any> = new EventEmitter();\r\n FilterTypeData: any[] = FilterType();\r\n BracketTypeData: any[] = BracketType();\r\n SpecialFieldData: any[] = SpecialField();\r\n CompareTypeData: any[] = CompareType();\r\n CompareConditionsData: any[] = CompareConditions().filter((item: any) => {\n return item.value != 'IN' && item.value != 'LIKE' && item.value != 'LEFT_LIKE' && item.value != 'RIGHT_LIKE';\n });\n readonly DateValueModeData: any[] = [\n { value: 'FIXED', label: '固定日期' },\n { value: '${today}', label: '运行当天' },\n { value: '${monthStart}', label: '当月月初' },\n { value: '${nextMonthStart}', label: '下月月初' },\n { value: '${monthEnd}', label: '当月月末' },\n ];\n\r\n constructor(public http: _HttpClient) { }\r\n\r\n ngOnInit() { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['data']) {\r\n if (this.data!! && this.data.tableData!!) {\r\n this.tableData = _.cloneDeep(this.data.tableData);\n this.argumentData = Array.isArray(this.data.argumentData) ? _.cloneDeep(this.data.argumentData) : [];\n if (this.data.filterData!! && this.data.filterData.length > 0) {\r\n this.data.filterData.forEach((item: any) => {\r\n let arrTable: any[] = this.tableData.filter((table: any) => {\r\n return table.code == item.cellTable;\r\n });\r\n if (arrTable!! && arrTable.length > 0) {\r\n if (arrTable[0].listField!! && arrTable[0].listField.length > 0 && item.cellField!!) {\r\n let arrField: any[] = arrTable[0].listField.filter((field: any) => {\r\n return field.code == item.cellField;\r\n });\r\n if (arrField!! && arrField.length > 0) {\n item['fieldType'] = arrField[0].type;\n this.normalizeDateValue(item);\n }\n }\r\n this.initValueConfig(item, arrTable[0].name);\r\n }\r\n });\r\n }\r\n this.filterData = this.data.filterData;\r\n this.initPageData();\r\n }\r\n }\r\n }\r\n\r\n initPageData() {\r\n let listItemId: any[] = [];\r\n this.tableData.forEach((table: any) => {\r\n if (table!! && table.listField!! && table.listField.length > 0) {\r\n table.listField.forEach((field: any) => {\r\n if (field.type == 'ITEM' && field.refId!!) {\r\n listItemId.push(field.refId);\r\n }\r\n });\r\n }\r\n });\r\n listItemId = [...new Set(listItemId)];\r\n if (listItemId != null && listItemId.length > 0) {\r\n this.http.post(`${ModuleAPI.user}/user/sys/listItemByIds`, { idList: listItemId }).subscribe((res: any) => {\r\n if (res.success && res.result!! && res.result.length > 0) {\r\n res.result.forEach((item: any) => {\r\n this.itemOptions[item.id] = item.listDetail;\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n addCondition() {\r\n if (this.filterData!!) {\r\n this.filterData = [...this.filterData, {}];\r\n } else {\r\n this.filterData = [{}];\r\n }\r\n this.dataChange.emit(this.filterData);\r\n }\r\n\r\n delCondition(i: number) {\r\n if (this.filterData!!) {\r\n this.filterData = this.filterData.filter((a: any, index: number) => {\r\n return index != i;\r\n });\r\n }\r\n this.dataChange.emit(this.filterData);\r\n }\r\n\r\n getFieldData(cellTable: any) {\r\n let fieldArray: any[] = [];\r\n this.tableData.forEach((item: any) => {\r\n if (item.code == cellTable) {\r\n fieldArray = item.listField;\r\n }\r\n });\r\n return fieldArray;\r\n }\r\n\r\n /**\r\n * 获取常用参数\r\n * @param cellTable\r\n * @param cellField\r\n * @returns\r\n */\r\n getItemData(cellTable: any, cellField: any) {\r\n let array: any[] = [];\r\n this.tableData.forEach((table: any) => {\r\n if (table.code == cellTable) {\r\n table.listField.forEach((field: any) => {\r\n if (field.type == 'ITEM' && field.code == cellField && field.refId!!) {\r\n if (this.itemOptions!! && this.itemOptions[field.refId]!!) {\r\n array = this.itemOptions[field.refId];\r\n }\r\n }\r\n });\r\n }\r\n });\r\n return array;\r\n }\r\n\r\n tableChange(e: any, item: any) {\r\n item['cellField'] = null;\r\n item['fieldType'] = null;\r\n item['cellValue'] = null;\r\n item['cellMultiple'] = null;\r\n }\r\n\r\n fieldChange(e: any, item: any) {\r\n item['fieldType'] = null;\r\n item['cellValue'] = null;\r\n item['cellMultiple'] = null;\r\n item['cellValueConfig'] = null;\r\n if (item.cellTable!! && item.cellField!!) {\r\n this.tableData.forEach((t: any) => {\r\n if (t.code == item.cellTable) {\r\n t.listField.forEach((f: any) => {\r\n if (f.code == item.cellField) {\n item.fieldType = f.type;\n item.cellMultiple = f.multiple;\n this.normalizeDateValue(item);\n\n this.initValueConfig(item, t.name);\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n operationChange(e: any, item: any) {\n if (item.cellOperation == 'SQL_RULES') {\r\n item['cellTable'] = null;\r\n item['cellField'] = null;\r\n item['parameterTable'] = null;\r\n item['parameterField'] = null;\r\n item['cellValue'] = null;\r\n }\r\n }\r\n\r\n refDataChange(e: any, item: any) {\r\n if (e!! && e.id!!) {\r\n item['cellValue'] = e.id;\r\n item['cellValueInfo'] = e;\r\n } else {\r\n item['cellValue'] = null;\r\n item['cellValueInfo'] = null;\r\n }\r\n }\r\n\r\n initValueConfig(item: any, tableName: any) {\n item.cellValueConfig = {\r\n type: 'ref2',\r\n label: tableName,\r\n selectType: 'single',\r\n isRowData: true,\r\n parameter: {\r\n tableCode: item.cellTable,\r\n fieldCode: item.cellField,\r\n },\r\n };\n }\n\n /** 返回筛选右值来源;模板参数使用结构化表达式保存,运行时仍通过预编译参数绑定。 */\n valueSourceMode(item: any): 'FIXED' | 'ARGUMENT' {\n return /^\\$\\{(?:argument|arg)\\.[A-Za-z][A-Za-z0-9_]{0,63}}$/.test(String(item?.cellValue || '').trim())\n ? 'ARGUMENT'\n : 'FIXED';\n }\n\n /** 切换筛选右值来源时清理上一种来源的值,避免固定值和模板参数相互污染。 */\n valueSourceModeChange(mode: 'FIXED' | 'ARGUMENT', item: any) {\n item.cellValue = mode === 'ARGUMENT' && this.argumentData.length\n ? `\\${argument.${this.argumentData[0].argumentCode}}`\n : null;\n }\n\n argumentCode(item: any): string | null {\n const match = /^\\$\\{(?:argument|arg)\\.([A-Za-z][A-Za-z0-9_]{0,63})}$/.exec(String(item?.cellValue || '').trim());\n return match ? match[1] : null;\n }\n\n argumentChange(code: string, item: any) {\n item.cellValue = code ? `\\${argument.${code}}` : null;\n }\n\n /**\n * 判断字段是否使用日期编辑器,DATE 和 DATETIME 使用同一套日期值处理逻辑。\n */\n isDateField(fieldType: any): boolean {\n return fieldType === 'DATE' || fieldType === 'DATETIME';\n }\n\n /**\n * 返回日期值的选择模式。动态日期变量使用下拉选项,避免直接传给日期组件造成 Invalid time value。\n */\n dateValueMode(value: any): string {\n const text = typeof value === 'string' ? value.trim() : '';\n return this.DateValueModeData.some((item: any) => item.value !== 'FIXED' && item.value === text)\n ? text\n : 'FIXED';\n }\n\n /**\n * 切换日期来源。选择固定日期时清空动态变量,等待用户重新选择具体日期。\n */\n dateValueModeChange(mode: string, item: any) {\n if (mode === 'FIXED') {\n item.cellValue = item.cellValue instanceof Date && !Number.isNaN(item.cellValue.getTime())\n ? item.cellValue\n : null;\n return;\n }\n item.cellValue = mode;\n }\n\n /**\n * 将接口返回的日期字符串转换为日期组件需要的 Date,动态日期变量保持原值。\n */\n private normalizeDateValue(item: any) {\n if (!this.isDateField(item?.fieldType) || item?.cellValue == null || item.cellValue === '') {\n return;\n }\n if (this.dateValueMode(item.cellValue) !== 'FIXED') {\n return;\n }\n if (this.valueSourceMode(item) === 'ARGUMENT') {\n return;\n }\n if (item.cellValue instanceof Date) {\n if (Number.isNaN(item.cellValue.getTime())) {\n item.cellValue = null;\n }\n return;\n }\n const parsed = this.parseDate(item.cellValue);\n item.cellValue = parsed;\n }\n\n /**\n * 兼容数据库常见的 yyyy-MM-dd、yyyy-MM-dd HH:mm:ss 和 ISO 日期格式。\n */\n private parseDate(value: any): Date | null {\n const text = String(value).trim();\n const dateOnly = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(text);\n if (dateOnly) {\n const date = new Date(Number(dateOnly[1]), Number(dateOnly[2]) - 1, Number(dateOnly[3]));\n return Number.isNaN(date.getTime()) ? null : date;\n }\n const normalized = text.replace(' ', 'T');\n const date = new Date(normalized);\n return Number.isNaN(date.getTime()) ? null : date;\n }\n}\n","<div class=\"header-box\">\r\n {{title}}\r\n <a (click)=\"addCondition()\">\r\n <i nz-icon nzType=\"plus-circle\"></i>\r\n 新增\r\n </a>\r\n</div>\r\n<div class=\"body-box\">\r\n <ng-container *ngIf=\"filterData!! && filterData.length>0;else tmpEmpty\">\r\n <ng-container *ngFor=\"let item of filterData;let i=index\">\r\n <ul>\r\n <li class=\"leftBracket\">\r\n <nz-select [(ngModel)]=\"item.leftBracket\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"leftBracket\">\r\n <nz-select [(ngModel)]=\"item.leftBracket2\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"cellOperation\">\r\n <nz-select [(ngModel)]=\"item.cellOperation\" nzAllowClear (ngModelChange)=\"operationChange($event,item)\">\r\n <ng-container *ngFor=\"let option of CompareConditionsData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li *ngIf=\"item?.cellOperation!='SQL_RULES'\" class=\"conditionTable\">\r\n <nz-select [(ngModel)]=\"item.cellTable\" nzAllowClear (ngModelChange)=\"tableChange($event,item)\">\r\n <ng-container *ngFor=\"let option of tableData\">\r\n <nz-option [nzValue]=\"option.code\" [nzLabel]=\"option.name\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n\r\n <li *ngIf=\"item?.cellOperation!='SQL_RULES'\" class=\"conditionField\">\r\n <nz-select [(ngModel)]=\"item.cellField\" nzAllowClear (ngModelChange)=\"fieldChange($event,item)\">\r\n <ng-container *ngFor=\"let option of getFieldData(item.cellTable)\">\r\n <nz-option [nzValue]=\"option.code\" [nzLabel]=\"option.name\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li *ngIf=\"item?.cellOperation!='SQL_RULES'\">\r\n <ng-container *ngIf=\"item.cellTable!! && item.cellField!! && item.fieldType!!\">\r\n <div class=\"cellValue\" [class.date-cell-value]=\"isDateField(item.fieldType)\">\n <nz-select\n *ngIf=\"argumentData.length\"\n class=\"value-source-select\"\n [ngModel]=\"valueSourceMode(item)\"\n (ngModelChange)=\"valueSourceModeChange($event, item)\"\n >\n <nz-option nzValue=\"FIXED\" nzLabel=\"固定值\"></nz-option>\n <nz-option nzValue=\"ARGUMENT\" nzLabel=\"模板参数\"></nz-option>\n </nz-select>\n <nz-select\n *ngIf=\"argumentData.length && valueSourceMode(item) === 'ARGUMENT'\"\n [ngModel]=\"argumentCode(item)\"\n (ngModelChange)=\"argumentChange($event, item)\"\n nzPlaceHolder=\"请选择模板参数\"\n >\n <nz-option\n *ngFor=\"let argument of argumentData\"\n [nzValue]=\"argument.argumentCode\"\n [nzLabel]=\"argument.argumentName\"\n ></nz-option>\n </nz-select>\n <ng-container *ngIf=\"valueSourceMode(item) === 'FIXED'\">\n <ng-container [ngSwitch]=\"item.fieldType\">\n <ng-container *ngSwitchCase=\"'BOOLEAN'\">\r\n <nz-select [(ngModel)]=\"item.cellValue\">\r\n <nz-option nzValue=\"0\" nzLabel=\"否\"></nz-option>\r\n <nz-option nzValue=\"1\" nzLabel=\"是\"></nz-option>\r\n </nz-select>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'DATETIME'\">\n <ng-container *ngTemplateOutlet=\"dateValueEditor; context: { $implicit: item }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'DATE'\">\n <ng-container *ngTemplateOutlet=\"dateValueEditor; context: { $implicit: item }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'INT'\">\r\n <nz-input-number [(ngModel)]=\"item.cellValue\" [nzStep]=\"1\" [nzPrecision]=\"0\"></nz-input-number>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'FLOAT'\">\r\n <nz-input-number [(ngModel)]=\"item.cellValue\" [nzStep]=\"1\" [nzPrecision]=\"2\"></nz-input-number>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'ITEM'\">\r\n <ng-container *ngIf=\"item?.cellMultiple==true;else tmp1\">暂不支持多选</ng-container>\r\n <ng-template #tmp1>\r\n <nz-select [(ngModel)]=\"item.cellValue\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of getItemData(item.cellTable,item.cellField)\">\r\n <nz-option [nzValue]=\"option.code\" [nzLabel]=\"option.name\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'REF'\">\r\n <ng-container *ngIf=\"item?.cellMultiple==true;else tmp2\">暂不支持多选</ng-container>\r\n <ng-template #tmp2>\r\n <gram-lookup\r\n [config]=\"item.cellValueConfig\"\r\n [data]=\"item.cellValueInfo\"\r\n (valueChange)=\"refDataChange($event,item)\"\r\n ></gram-lookup>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <input nz-input [(ngModel)]=\"item.cellValue\" />\r\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\r\n </li>\r\n <li *ngIf=\"item?.cellOperation=='SQL_RULES' \">\r\n <div class=\"cellValue\">\r\n <input nz-input [(ngModel)]=\"item.cellValue\" />\r\n </div>\r\n </li>\r\n <li class=\"rightBracket\">\r\n <nz-select [(ngModel)]=\"item.rightBracket\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"rightBracket\">\r\n <nz-select [(ngModel)]=\"item.rightBracket2\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"cellFunction\">\r\n <nz-select [(ngModel)]=\"item.cellFunction\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of FilterTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <div class=\"btnDel\">\r\n <a (click)=\"delCondition(i)\">\r\n <i nz-icon nzType=\"delete\"></i>\r\n </a>\r\n </div>\r\n </ul>\r\n </ng-container>\r\n </ng-container>\r\n</div>\n\n<ng-template #dateValueEditor let-dateItem>\n <ng-container\n *ngIf=\"dateItem?.cellOperation!='DATE_YEAR'\n && dateItem?.cellOperation!='DATE_MONTH'\n && dateItem?.cellOperation!='DATE_WEEK'\n && dateItem?.cellOperation!='DATE_QUARTER'\"\n >\n <div class=\"date-value-editor\" [class.dynamic-value]=\"dateValueMode(dateItem.cellValue) !== 'FIXED'\">\n <nz-select\n [ngModel]=\"dateValueMode(dateItem.cellValue)\"\n (ngModelChange)=\"dateValueModeChange($event, dateItem)\"\n nzPlaceHolder=\"日期来源\"\n >\n <nz-option\n *ngFor=\"let option of DateValueModeData\"\n [nzValue]=\"option.value\"\n [nzLabel]=\"option.label\"\n ></nz-option>\n </nz-select>\n <nz-date-picker\n *ngIf=\"dateValueMode(dateItem.cellValue) === 'FIXED'\"\n [(ngModel)]=\"dateItem.cellValue\"\n [nzShowTime]=\"dateItem.fieldType === 'DATETIME'\"\n [nzFormat]=\"dateItem.fieldType === 'DATETIME' ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd'\"\n nzPlacement=\"bottomLeft\"\n nzPlaceHolder=\"请选择日期\"\n [nzAllowClear]=\"true\"\n ></nz-date-picker>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tmpEmpty>\n <div class=\"empty\">\r\n <div class=\"image\"><img src=\"assets/images/default/empty2.png\" /></div>\r\n </div>\r\n</ng-template>\r\n","import { Component, OnInit, Input, EventEmitter, Output, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { NzSelectModule } from 'ng-zorro-antd/select';\r\nimport { NzInputModule } from 'ng-zorro-antd/input';\r\nimport { NzInputNumberModule } from 'ng-zorro-antd/input-number';\r\nimport { NzButtonModule } from 'ng-zorro-antd/button';\r\nimport { NzDatePickerModule } from 'ng-zorro-antd/date-picker';\r\nimport { NzIconModule } from 'ng-zorro-antd/icon';\r\n\r\nimport { GramDeonLookUpModule } from '@ebuilding/biz-comm/components/lookup';\r\nimport { FilterType, CompareType, CompareConditions, BracketType, SpecialField, CompareFieldType } from '@ebuilding/base/shared.util/static';\r\nimport _ from 'lodash';\r\n\r\nexport interface IData {\r\n tableCode?: any;\r\n tableFieldData: any[];\r\n sourceTableData: any[];\r\n fieldOptions: any;\r\n filterData: any[];\r\n}\r\n\r\n@Component({\r\n selector: 'gram-filter-compare',\r\n templateUrl: './index.html',\r\n styleUrls: ['./index.less'],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NzSelectModule,\r\n NzInputModule,\r\n NzInputNumberModule,\r\n NzButtonModule,\r\n NzDatePickerModule,\r\n NzIconModule,\r\n GramDeonLookUpModule\r\n ]\r\n})\r\nexport class GramFilterCompareComponent implements OnInit, OnChanges {\r\n loading: boolean = true;\r\n\r\n /**\r\n * 常量\r\n */\r\n FilterTypeData: any[] = FilterType();\r\n BracketTypeData: any[] = BracketType();\r\n SpecialFieldData: any[] = SpecialField();\r\n CompareTypeData: any[] = CompareType();\r\n CompareFieldTypeData: any[] = CompareFieldType();\r\n CompareConditionsData: any[] = CompareConditions().filter((item: any) => {\r\n return item.value != 'IN' && item.value != 'LIKE' && item.value != 'LEFT_LIKE' && item.value != 'RIGHT_LIKE';\r\n });\r\n\r\n /**\r\n * 基础数据\r\n */\r\n tableFieldData: any[];\r\n sourceTableData: any[];\r\n fieldOptions: any;\r\n filterData: any[] = [];\r\n\r\n @Input() title: any = null;\r\n\r\n @Input() data: IData;\r\n\r\n @Output() dataChange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['data']) {\r\n if (this.data!!) {\r\n this.tableFieldData = _.cloneDeep(this.data.tableFieldData);\r\n this.sourceTableData = _.cloneDeep(this.data.sourceTableData);\r\n this.fieldOptions = _.cloneDeep(this.data.fieldOptions);\r\n this.filterData = this.data.filterData;\r\n if (this.filterData!! && this.filterData.length > 0) {\r\n this.filterData.forEach((a: any) => {\r\n this.tableFieldData.forEach((b: any) => {\r\n if (b.value == a.cellField) {\r\n a['cellFieldType'] = b.type;\r\n a['cellFieldMultiple'] = b.multiple;\r\n if (this.fieldOptions!! && this.fieldOptions[a.cellField]!!) {\r\n a['cellFieldOptions'] = this.fieldOptions[a.cellField];\r\n }\r\n }\r\n });\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n addCondition() {\r\n if (this.filterData!!) {\r\n this.filterData = [\r\n ...this.filterData,\r\n {\r\n cellOperation: 'EQ',\r\n cellType: 'FIELD',\r\n },\r\n ];\r\n } else {\r\n this.filterData = [\r\n {\r\n cellOperation: 'EQ',\r\n cellType: 'FIELD',\r\n },\r\n ];\r\n }\r\n this.dataChange.emit(this.filterData);\r\n }\r\n\r\n delCondition(i: number) {\r\n if (this.filterData!!) {\r\n this.filterData = this.filterData.filter((a: any, index: number) => {\r\n return index != i;\r\n });\r\n }\r\n this.dataChange.emit(this.filterData);\r\n }\r\n\r\n cellFieldChange(e: any, item: any) {\r\n item['cellFieldType'] = null;\r\n item['cellFieldOptions'] = null;\r\n item['cellFieldMultiple'] = null;\r\n if (item.cellField!!) {\r\n this.tableFieldData.forEach((a: any) => {\r\n if (a.value == item.cellField) {\r\n item['cellFieldType'] = a.type;\r\n item['cellFieldMultiple'] = a.multiple;\r\n if (this.fieldOptions!! && this.fieldOptions[item.cellField]!!) {\r\n item['cellFieldOptions'] = this.fieldOptions[item.cellField];\r\n }\r\n this.initValueConfig(item, a.name);\r\n }\r\n });\r\n }\r\n this.dataChange.emit(this.filterData);\r\n }\r\n\r\n tableChange(e: any, item: any) {\r\n item['parameterField'] = null;\r\n item['cellValue'] = null;\r\n this.dataChange.emit(this.filterData);\r\n }\r\n\r\n getFieldData(parameterTable: any) {\r\n let arr: any[] = [];\r\n this.sourceTableData.forEach((item: any) => {\r\n if (item.code == parameterTable) {\r\n arr = item.listField;\r\n }\r\n });\r\n return arr;\r\n }\r\n\r\n operationChange(e: any, item: any) {\r\n if (item.cellOperation == 'SQL_RULES') {\r\n item['cellTable'] = null;\r\n item['cellField'] = null;\r\n item['parameterTable'] = null;\r\n item['parameterField'] = null;\r\n item['cellValue'] = null;\r\n }\r\n this.dataChange.emit(this.filterData);\r\n }\r\n\r\n refDataChange(e: any, item: any) {\r\n if (e!! && e.id!!) {\r\n item['cellValue'] = e.id;\r\n item['cellValueInfo'] = e;\r\n } else {\r\n item['cellValue'] = null;\r\n item['cellValueInfo'] = null;\r\n }\r\n }\r\n\r\n initValueConfig(item: any, tableName: any) {\r\n item.cellValueConfig = {\r\n type: 'ref2',\r\n label: tableName,\r\n selectType: 'single',\r\n isRowData: true,\r\n parameter: {\r\n tableCode: this.data?.tableCode,\r\n fieldCode: item.cellField,\r\n },\r\n };\r\n }\r\n}\r\n","<div class=\"header-box\">\r\n {{title}}\r\n <a (click)=\"addCondition()\">\r\n <i nz-icon nzType=\"plus-circle\"></i>\r\n 新增\r\n </a>\r\n</div>\r\n<div class=\"body-box\">\r\n <ng-container *ngIf=\"filterData!! && filterData.length>0;else tmpEmpty\">\r\n <ng-container *ngFor=\"let item of filterData;let i=index\">\r\n <ul>\r\n <li class=\"leftBracket\">\r\n <nz-select [(ngModel)]=\"item.leftBracket\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"leftBracket\">\r\n <nz-select [(ngModel)]=\"item.leftBracket2\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n\r\n <!-- 字段匹配类型 -->\r\n <li class=\"cellOperation\" *ngIf=\"item?.cellOperation!='SQL_RULES'\">\r\n <nz-select [(ngModel)]=\"item.cellType\">\r\n <ng-container *ngFor=\"let option of CompareFieldTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n\r\n <!-- 字段 -->\r\n <li class=\"cellOperation\" *ngIf=\"item?.cellOperation!='SQL_RULES'\">\r\n <nz-select [(ngModel)]=\"item.cellField\" nzAllowClear (ngModelChange)=\"cellFieldChange($event,item)\">\r\n <ng-container *ngFor=\"let option of tableFieldData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n\r\n <!-- 操作符 -->\r\n <li class=\"cellOperation\">\r\n <nz-select [(ngModel)]=\"item.cellOperation\" nzAllowClear (ngModelChange)=\"operationChange($event,item)\">\r\n <ng-container *ngFor=\"let option of CompareConditionsData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <ng-container *ngIf=\"item?.cellOperation!='SQL_RULES'\">\r\n <!-- 字段匹配类型--自定义值 -->\r\n <ng-container *ngIf=\"item.cellType=='CUSTOM' && item.cellFieldType!!\">\r\n <ng-container [ngSwitch]=\"item.cellFieldType\">\r\n <ng-container *ngSwitchCase=\"'ITEM'\">\r\n <li class=\"cellOperation\">\r\n <ng-container *ngIf=\"item?.cellFieldMultiple==true;else tmp1\">暂不支持多选</ng-container>\r\n <ng-template #tmp1>\r\n <nz-select [(ngModel)]=\"item.cellValue\">\r\n <ng-container *ngFor=\"let option of item.cellFieldOptions\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </ng-template>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'BOOLEAN'\">\r\n <li class=\"cellOperation\">\r\n <nz-select [(ngModel)]=\"item.cellValue\">\r\n <ng-container *ngFor=\"let option of item.cellFieldOptions\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'REF'\">\r\n <li class=\"cellOperation\">\r\n <ng-container *ngIf=\"item?.cellFieldMultiple==true;else tmp2\">暂不支持多选</ng-container>\r\n <ng-template #tmp2>\r\n <gram-lookup\r\n [config]=\"item.cellValueConfig\"\r\n [data]=\"item.cellValueInfo\"\r\n (valueChange)=\"refDataChange($event,item)\"\r\n ></gram-lookup>\r\n </ng-template>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'TEXT'\">\r\n <li class=\"cellOperation\">\r\n <input nz-input [(ngModel)]=\"item.cellValue\" />\r\n </li>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'TEXTAREA'\">\r\n <li class=\"cellOperation\">\r\n <input nz-input [(ngModel)]=\"item.cellValue\" />\r\n </li>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'INT'\">\r\n <li class=\"cellOperation\">\r\n <nz-input-number [(ngModel)]=\"item.cellValue\" [nzStep]=\"1\" [nzPrecision]=\"0\"></nz-input-number>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'FLOAT'\">\r\n <li class=\"cellOperation\">\r\n <nz-input-number [(ngModel)]=\"item.cellValue\" [nzStep]=\"1\"></nz-input-number>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'DATETIME'\">\r\n <li class=\"cellOperation\">\r\n <nz-date-picker [(ngModel)]=\"item.cellValue\" nzShowTime nzFormat=\"yyyy-MM-dd HH:mm:ss\"></nz-date-picker>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault> </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- 字段匹配类型--字段匹配 -->\r\n <ng-container *ngIf=\"item.cellType=='FIELD'\">\r\n <li class=\"conditionTable\">\r\n <nz-select [(ngModel)]=\"item.parameterTable\" nzAllowClear (ngModelChange)=\"tableChange($event,item)\">\r\n <ng-container *ngFor=\"let option of sourceTableData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n\r\n <li class=\"conditionField\">\r\n <nz-select [(ngModel)]=\"item.parameterField\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of getFieldData(item.parameterTable)\">\r\n <nz-option [nzValue]=\"option.code\" [nzLabel]=\"option.name\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <li *ngIf=\"item?.cellOperation=='SQL_RULES' \">\r\n <div class=\"cellValue\">\r\n <input nz-input [(ngModel)]=\"item.cellValue\" />\r\n </div>\r\n </li>\r\n <li class=\"rightBracket\">\r\n <nz-select [(ngModel)]=\"item.rightBracket\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"rightBracket\">\r\n <nz-select [(ngModel)]=\"item.rightBracket2\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of BracketTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <li class=\"cellFunction\">\r\n <nz-select [(ngModel)]=\"item.cellFunction\" nzAllowClear>\r\n <ng-container *ngFor=\"let option of FilterTypeData\">\r\n <nz-option [nzValue]=\"option.value\" [nzLabel]=\"option.label\"></nz-option>\r\n </ng-container>\r\n </nz-select>\r\n </li>\r\n <div class=\"btnDel\">\r\n <a (click)=\"delCondition(i)\">\r\n <i nz-icon nzType=\"delete\"></i>\r\n </a>\r\n </div>\r\n </ul>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #tmpEmpty>\r\n <div class=\"empty\">\r\n <div class=\"image\"><img src=\"assets/images/default/empty2.png\" /></div>\r\n </div>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { GramDeonFilterComponent } from './default/index';\r\nimport { GramFilterCompareComponent } from './compare-filter/index';\r\n\r\nconst components: any[] = [GramDeonFilterComponent, GramFilterCompareComponent];\r\n\r\n@NgModule({\r\n imports: [\r\n ...components\r\n ],\r\n exports: [...components],\r\n})\r\nexport class GramDeonFilterModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i4","i5","i7","i8","i9"],"mappings":"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"}
|