瀏覽代碼

bug fix for number filter and pay-in list all income mode

tags/2.037
Patrick Sun 4 年之前
父節點
當前提交
496c6e73e3
共有 6 個文件被更改,包括 45 次插入20 次删除
  1. +3
    -5
      src/app/grid-filter/date-filter/date-filter.component.ts
  2. +15
    -5
      src/app/grid-filter/number-range-filter/number-range-filter.component.ts
  3. +1
    -1
      src/app/grid-filter/string-filter/string-filter.component.ts
  4. +1
    -0
      src/app/list-income/list-income.component.html
  5. +6
    -6
      src/app/pay-in/pay-in.component.html
  6. +19
    -3
      src/app/pay-in/pay-in.component.ts

+ 3
- 5
src/app/grid-filter/date-filter/date-filter.component.ts 查看文件

@@ -30,7 +30,7 @@ export class DateFilterComponent extends BaseFilterCellComponent implements OnI
if ( this.range > this.end ){
this.range = this.end;
}
this.date = new Date();
this.date = null;
}

private rangeBetween(start: number, end: number): number[] {
@@ -55,7 +55,6 @@ export class DateFilterComponent extends BaseFilterCellComponent implements OnI
this.debouncedDoFilter().then();
}
public onRangeChange(r: number): void {
console.log(this.date, r);
this.debouncedDoFilter().then();
}

@@ -89,17 +88,16 @@ export class DateFilterComponent extends BaseFilterCellComponent implements OnI
const fs: FilterDescriptor[] = [];
const start: Date = new Date(this.date); start.setDate(this.date.getDate() - this.range);
const end: Date = new Date(this.date); end.setDate(this.date.getDate() + this.range);
console.log(new Date(start), new Date(end));
fs.push({
field: this.fieldName,
operator: 'gte',
value: start.getTime()
value: start.getTime() / 1000
});

fs.push({
field: this.fieldName,
operator: 'lte',
value: end.getTime()
value: end.getTime() / 1000
});
this.removeFilter(this.fieldName);
const root: CompositeFilterDescriptor = this.filter || { logic: 'and',

+ 15
- 5
src/app/grid-filter/number-range-filter/number-range-filter.component.ts 查看文件

@@ -84,11 +84,11 @@ export class NumberRangeFilterComponent extends BaseFilterCellComponent implemen
}

private initAvailableOperators(): void {
this.availableOperators = this.AllOperatorMap.filter( v => {
// console.log(v, this.options.indexOf(v.value), this.options);
return this.options.indexOf(v.value) !== -1;
} );
if ( this.availableOperators.length === 0) {
this.availableOperators = [];
const self = this;
this.options.forEach( v => this.availableOperators.push(self.getOp(v)) );
if ( this.availableOperators.length <= 0) {
this.availableOperators = [this.defaultOperator];
this.operator = this.defaultOperator;
}else{
@@ -97,6 +97,16 @@ export class NumberRangeFilterComponent extends BaseFilterCellComponent implemen
this.singleMode = this.operator.value !== 'range';
}

private getOp(key: string): Operator {
let ret: Operator;
this.AllOperatorMap.every( v => {
if ( v.value === key ) {
ret = v;
}
return v.value !== key;
});
return ret;
}

//
// Events handling

+ 1
- 1
src/app/grid-filter/string-filter/string-filter.component.ts 查看文件

@@ -30,7 +30,7 @@ export class StringFilterComponent extends BaseFilterCellComponent implements On
this.removeFilter(this.fieldName) :
this.updateFilter({
field: this.fieldName,
operator: 'eq',
operator: 'contains',
value: v
})
);

+ 1
- 0
src/app/list-income/list-income.component.html 查看文件

@@ -4,6 +4,7 @@
[showLoanColumn]="true"
[showUploadColumn]="true"
[LoadDataNow]="startLoad"
[allowFilter]="true"
>
</app-pay-in>
</div>

+ 6
- 6
src/app/pay-in/pay-in.component.html 查看文件

@@ -5,7 +5,7 @@
[pageSize]="filter.Take"
[skip]="filter.Skip"
[sortable]="sortable"
[filterable]="allowFilter"
[filterable]="filterable"
[loading]="loading"

[sort]="filter.Sort"
@@ -39,8 +39,8 @@
<span *ngIf="uploadMeta.Id > 0 " class="badge badge-pill badge-primary specific-upload"> {{uploadMeta.Id}} </span>
<span *ngIf="uploadMeta.Id > 0 " class="badge badge-secondary specific-upload"> {{uploadMeta.FileName}} </span>
<button *ngIf="false" kendoButton icon="filter" (click)="showFilter()" >Filter</button>
<kendo-switch [(ngModel)]="allowFilter" onLabel="⧩"
offLabel="all"></kendo-switch>
<kendo-switch *ngIf="allowFilter" [(ngModel)]="filterable" onLabel="⧩" offLabel="all"
(valueChange)="onFilterEnable($event)"></kendo-switch>
</div>
</div>
</ng-template>
@@ -90,7 +90,7 @@
<kendo-grid-column field="IncomeAmount" title="Income" width="150" format="{0:c}" editor="numeric">
<ng-template kendoGridFilterCellTemplate let-filter let-column="column">
<app-number-range-filter [filter]="filter" [fieldName]="'IncomeAmount'"
[options]="['eq', 'lte', 'gte', 'range']" [min]=0
[options]="['gte', 'eq', 'lte', 'range']" [min]=0
>
</app-number-range-filter>
</ng-template>
@@ -140,7 +140,7 @@

<ng-template kendoGridFilterCellTemplate let-filter let-column="column">
<app-number-range-filter [filter]="filter" [fieldName]="'Balance'"
[options]="['eq', 'lte', 'gte','range']" [min]=0
[options]="['gte', 'lte', 'eq','range']" [min]=0
>
</app-number-range-filter>
</ng-template>
@@ -171,7 +171,7 @@
</ng-template>
<ng-template kendoGridFilterCellTemplate let-filter let-column="column">
<app-number-range-filter [filter]="filter" [fieldName]="'OffsetBalance'"
[options]="['eq', 'lte', 'gte', 'range']" [min]=0
[options]="['gte', 'lte', 'eq', 'range']" [min]=0
>
</app-number-range-filter>
</ng-template>

+ 19
- 3
src/app/pay-in/pay-in.component.ts 查看文件

@@ -12,7 +12,7 @@ import {
RowClassArgs,
SortSettings,
DataStateChangeEvent,
SelectableSettings
SelectableSettings, PagerSettings
} from '@progress/kendo-angular-grid';
import {CompositeFilterDescriptor, FilterDescriptor, SortDescriptor} from '@progress/kendo-data-query';
import {UploadMetaModel} from '../models/uploadMetaModel';
@@ -57,10 +57,16 @@ export class PayInComponent implements OnInit {
public showBalance = true;
public showOffsetBalance = true;

@Input() public pageable = true;
@Input() public pageable: PagerSettings = {
pageSizes: [2, 5, 10, 15, 20, 30, 40, 50, 100],
previousNext: true
};
@Input() public pageSize = 15;

@Input() public Selection: number[] = [];

public pageSizeOptions = [2, 5, 10, 15, 20, 30, 40, 50, 100];
public filterable: boolean;
public sortable: SortSettings = {
mode: 'single'
};
@@ -345,6 +351,7 @@ export class PayInComponent implements OnInit {

public pageChange(event: PageChangeEvent): void {
this.filter.Skip = event.skip;
this.filter.Take = event.take;
// this.loadFilteredData();
}

@@ -355,11 +362,12 @@ export class PayInComponent implements OnInit {

public filterChange( filter: CompositeFilterDescriptor): void {
// console.log (filter, this.state.filter);
this.filter.Skip = 0;
}
public dataStateChange(state: DataStateChangeEvent): void {
this.state = state;
console.log(state);
this.loadFilteredPayInList();
console.log(state, this.state);
}

public onLoanChange(loan: LoanModel): void {
@@ -422,4 +430,12 @@ export class PayInComponent implements OnInit {
});
return found;
}

public onFilterEnable(filtering: boolean): void {
if ( ! filtering ) {
this.state.filter = { logic: 'and', filters: [] };
this.state.skip = 0;
this.loadFilteredPayInList();
}
}
}

Loading…
取消
儲存