Sfoglia il codice sorgente

operator now has a illustration

tags/2.037
Patrick Sun 4 anni fa
parent
commit
9a55900c92
3 ha cambiato i file con 27 aggiunte e 15 eliminazioni
  1. +11
    -1
      src/app/grid-filter/number-range-filter/number-range-filter.component.html
  2. +15
    -12
      src/app/grid-filter/number-range-filter/number-range-filter.component.ts
  3. +1
    -2
      src/app/pay-in/pay-in.component.html

+ 11
- 1
src/app/grid-filter/number-range-filter/number-range-filter.component.html Vedi File

[data]="availableOperators" textField="op" look="bare" [data]="availableOperators" textField="op" look="bare"
(itemClick)="onOperatorClick($event)"> (itemClick)="onOperatorClick($event)">
{{operator.op}} {{operator.op}}
<ng-template kendoDropDownButtonItemTemplate let-dataItem>
<span>{{ dataItem.op }}</span>&nbsp;
<span>{{ dataItem.description }}</span>
</ng-template>
</kendo-dropdownbutton> </kendo-dropdownbutton>
<kendo-textbox #single class="full" [ngClass]="{'with-padding': showOperatorChoice}" <kendo-textbox #single class="full" [ngClass]="{'with-padding': showOperatorChoice}"
[(ngModel)]="valueFrom" (valueChange)="onChangeFrom($event)" [(ngModel)]="valueFrom" (valueChange)="onChangeFrom($event)"
[ngModelOptions]="{standalone: true}" [ngModelOptions]="{standalone: true}"
[showErrorIcon]="!valueFromValid" [showErrorIcon]="!valueFromValid"
[required]="required" [required]="required"
format="{0:c}"
(inputFocus)="onFromTouched()" (inputFocus)="onFromTouched()"
></kendo-textbox> ></kendo-textbox>
</div> </div>
[data]="availableOperators" textField="op" [data]="availableOperators" textField="op"
look="bare" (itemClick)="onOperatorClick($event)"> look="bare" (itemClick)="onOperatorClick($event)">
{{operator.op}} {{operator.op}}
<ng-template kendoDropDownButtonItemTemplate let-dataItem>
<span>{{ dataItem.op }}</span>
<span>{{ dataItem.description }}</span>
</ng-template>

</kendo-dropdownbutton> </kendo-dropdownbutton>
<kendo-textbox #rangeTo class="second-half" <kendo-textbox #rangeTo class="second-half"
[required]="required" [required]="required"
[showErrorIcon]="!valueToValid" [showErrorIcon]="!valueToValid"
[(ngModel)]="valueTo" [(ngModel)]="valueTo"
(inputFocus)="onToTouched()"
(inputFocus)="onToTouched()"
[ngModelOptions]="{standalone: true}" [ngModelOptions]="{standalone: true}"
(valueChange)="onChangeTo($event)"></kendo-textbox> (valueChange)="onChangeTo($event)"></kendo-textbox>
</div> </div>

+ 15
- 12
src/app/grid-filter/number-range-filter/number-range-filter.component.ts Vedi File







class Operator { op: string; value: string; }
class Operator { op: string; value: string; description: string; }


@Component({ @Component({
selector: 'app-number-range-filter', selector: 'app-number-range-filter',
@Input() public max = -1; @Input() public max = -1;
@Input() public required = false; @Input() public required = false;
@Input() public fieldName = ''; @Input() public fieldName = '';
@Input() public options = ['=', '≠', '>', '≥', '<', '≤', '⇩'];
@Input() public options = ['eq', 'neq', 'gt', 'gte', 'lt', 'lte', 'range'];
// ngModel control // ngModel control
@ViewChild('single') ctlSingle: TextBoxComponent; @ViewChild('single') ctlSingle: TextBoxComponent;
@ViewChild('rangeFrom') ctlRangeFrom: TextBoxComponent; @ViewChild('rangeFrom') ctlRangeFrom: TextBoxComponent;
@ViewChild('rangeTo') ctlRangeTo: TextBoxComponent; @ViewChild('rangeTo') ctlRangeTo: TextBoxComponent;


public operator: Operator = {op: '=', value: 'eq'};
private defaultOperator: Operator = {op: '=', value: 'eq'};
public operator: Operator = {op: '=', value: 'eq', description: 'equal'};
private defaultOperator: Operator = {op: '=', value: 'eq', description: 'equal'};
public availableOperators: Operator[] = []; public availableOperators: Operator[] = [];
private AllOperatorMap = [ private AllOperatorMap = [
{op: '=', value: 'eq'},
{op: '≠', value: 'neq'},
{op: '>', value: 'gt'},
{op: '≥', value: 'gte'},
{op: '<', value: 'lt'},
{op: '≤', value: 'lte'},
{op: '⇩', value: 'range'}
{op: '=', value: 'eq', description: 'equal to'},
{op: '≠', value: 'neq', description: 'not equal to '},
{op: '>', value: 'gt', description: 'greater than'},
{op: '≥', value: 'gte', description: 'greater than or equal to'},
{op: '<', value: 'lt', description: 'less than'},
{op: '≤', value: 'lte', description: 'less than or equal to'},
{op: '⇩', value: 'range', description: 'range'}
]; ];


public singleMode = true; public singleMode = true;
} }


private initAvailableOperators(): void { private initAvailableOperators(): void {
this.availableOperators = this.AllOperatorMap.filter( v => this.options.indexOf(v.value) !== -1 );
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) { if ( this.availableOperators.length === 0) {
this.availableOperators = [this.defaultOperator]; this.availableOperators = [this.defaultOperator];
this.operator = this.defaultOperator; this.operator = this.defaultOperator;

+ 1
- 2
src/app/pay-in/pay-in.component.html Vedi File

<kendo-grid-column field="Id" title="Id" width="100" editable="false"> <kendo-grid-column field="Id" title="Id" width="100" editable="false">
<ng-template kendoGridFilterCellTemplate let-filter let-column="column"> <ng-template kendoGridFilterCellTemplate let-filter let-column="column">
<app-number-range-filter [filter]="filter" [fieldName]="'Id'" <app-number-range-filter [filter]="filter" [fieldName]="'Id'"
[options]="['eq', 'lt', 'gte', 'range' ]" [min]=1 [max]="20"
[required]="true"
[min]=1
> >
</app-number-range-filter> </app-number-range-filter>
</ng-template> </ng-template>

Loading…
Annulla
Salva