UNPKG

@kre-form/ionic

Version:

204 lines 13.6 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, Input } from "@angular/core"; import { ModalController } from "@ionic/angular"; import * as _ from "lodash"; export class KreFormFieldIonSelectComponent { /** * @param {?} modalController */ constructor(modalController) { this.modalController = modalController; this.isAllChecked = false; // 缓存-当前选中 this.selectedNum = 0; // 可选项 this.selectType = "multiple"; //single } //single /** * @return {?} */ get options() { return this._options; } /** * @param {?} value * @return {?} */ set options(value) { this._options = _.cloneDeep(value); this._options_old = value; } //全选 /** * @param {?} e * @return {?} */ checkAll(e) { if (this.isAllChecked == true) { this.options.forEach((/** * @param {?} e * @return {?} */ (e) => { e.checked = true; })); } else { // 全选后取消某一项不清空选中效果判断 if (this.selectedNum === this.options.length) { this.options.forEach((/** * @param {?} e * @return {?} */ (e) => { e.checked = false; })); } } this.setSelectNum(); } //筛选选中 /** * @return {?} */ setSelectNum() { this.selectedNum = this.options.filter((/** * @param {?} item * @return {?} */ (item) => item.checked)).length; this.isAllChecked = this.options.length > 0 && this.selectedNum === this.options.length; } /** * @param {?} value * @return {?} */ singleCheck(value) { this.options.map((/** * @param {?} element * @return {?} */ (element) => { element.checked = element.value === value; return element; })); } // 0 取消 / 1 确定 /** * @param {?} type * @return {?} */ dismissModel(type) { /** @type {?} */ let selectOptions = []; if (type) { selectOptions = this.options .filter((/** * @param {?} item * @return {?} */ (item) => { return item.checked; })) .map((/** * @param {?} item * @return {?} */ (item) => { return { label: item.label, value: item.value }; })); this.modalController.dismiss(selectOptions); } else { this.modalController.dismiss(); } } /** * @return {?} */ ngOnInit() { } /** * @return {?} */ ngAfterViewInit() { } } KreFormFieldIonSelectComponent.decorators = [ { type: Component, args: [{ selector: "kreform-field-ion-select", template: ` <div class="multi"> <div class="multi_head"> <ng-container *ngIf="selectType == 'multiple'; else other"> <ion-item> <ion-checkbox [(ngModel)]="isAllChecked" (ionChange)="checkAll($event)" ></ion-checkbox> <ion-label> 全选 <span>({{ selectedNum }}/{{ options.length }})</span></ion-label > </ion-item> <div> <ion-button size="small" fill="clear" (click)="dismissModel(false)" >取消</ion-button > <ion-button size="small" fill="clear" (click)="dismissModel(true)" >确定</ion-button > </div> </ng-container> <ng-template #other> <ion-button size="small" fill="clear" (click)="dismissModel(false)" >取消</ion-button > <ion-button size="small" fill="clear" (click)="dismissModel(true)" >确定</ion-button > </ng-template> </div> <div class="multi_scroll"> <ion-item class="multi_scroll_item hairlines-bottom" *ngFor="let row of options" (click)="selectType == 'single' ? singleCheck(row.value) : ''" > <ion-checkbox [(ngModel)]="row.checked" (ionChange)="selectType == 'multiple' ? setSelectNum() : ''" ></ion-checkbox> <ion-label>{{ row.label }}</ion-label> </ion-item> </div> </div> ` }] } ]; /** @nocollapse */ KreFormFieldIonSelectComponent.ctorParameters = () => [ { type: ModalController } ]; KreFormFieldIonSelectComponent.propDecorators = { selectType: [{ type: Input }], options: [{ type: Input }] }; if (false) { /** @type {?} */ KreFormFieldIonSelectComponent.prototype.isAllChecked; /** @type {?} */ KreFormFieldIonSelectComponent.prototype.selectedNum; /** @type {?} */ KreFormFieldIonSelectComponent.prototype._options; /** @type {?} */ KreFormFieldIonSelectComponent.prototype._options_old; /** @type {?} */ KreFormFieldIonSelectComponent.prototype.selectType; /** @type {?} */ KreFormFieldIonSelectComponent.prototype.modalController; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0X2NvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BrcmUtZm9ybS9pb25pYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3NlbGVjdF9jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFtRDVCLE1BQU0sT0FBTyw4QkFBOEI7Ozs7SUFrQnpDLFlBQW1CLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQWpCbkQsaUJBQVksR0FBRyxLQUFLLENBQUM7O1FBRXJCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDOztRQUlQLGVBQVUsR0FBRyxVQUFVLENBQUMsQ0FBQyxRQUFRO0lBV1ksQ0FBQzs7Ozs7SUFUdkQsSUFDVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDOzs7OztJQUNELElBQVcsT0FBTyxDQUFDLEtBQVU7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7Ozs7OztJQUtELFFBQVEsQ0FBQyxDQUFNO1FBQ2IsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksRUFBRTtZQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87Ozs7WUFBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUN6QixDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNuQixDQUFDLEVBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxvQkFBb0I7WUFDcEIsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO2dCQUM1QyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87Ozs7Z0JBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDekIsQ0FBQyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3BCLENBQUMsRUFBQyxDQUFDO2FBQ0o7U0FDRjtRQUVELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDOzs7OztJQUdELFlBQVk7UUFDVixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTs7OztRQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3RFLElBQUksQ0FBQyxZQUFZO1lBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDeEUsQ0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsS0FBSztRQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRzs7OztRQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDM0IsT0FBTyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQztZQUMxQyxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7OztJQUdELFlBQVksQ0FBQyxJQUFJOztZQUNYLGFBQWEsR0FBRyxFQUFFO1FBQ3RCLElBQUksSUFBSSxFQUFFO1lBQ1IsYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPO2lCQUN6QixNQUFNOzs7O1lBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDdEIsQ0FBQyxFQUFDO2lCQUNELEdBQUc7Ozs7WUFBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNaLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xELENBQUMsRUFBQyxDQUFDO1lBQ0wsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDN0M7YUFBTTtZQUNMLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDaEM7SUFDSCxDQUFDOzs7O0lBRUQsUUFBUSxLQUFJLENBQUM7Ozs7SUFFYixlQUFlLEtBQUksQ0FBQzs7O1lBekhyQixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOENUO2FBQ0Y7Ozs7WUFuRFEsZUFBZTs7O3lCQTJEckIsS0FBSztzQkFFTCxLQUFLOzs7O0lBUk4sc0RBQXFCOztJQUVyQixxREFBZ0I7O0lBQ2hCLGtEQUFjOztJQUNkLHNEQUFrQjs7SUFFbEIsb0RBQWlDOztJQVdyQix5REFBdUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIEFmdGVyVmlld0luaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTW9kYWxDb250cm9sbGVyIH0gZnJvbSBcIkBpb25pYy9hbmd1bGFyXCI7XG5pbXBvcnQgKiBhcyBfIGZyb20gXCJsb2Rhc2hcIjtcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJrcmVmb3JtLWZpZWxkLWlvbi1zZWxlY3RcIixcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwibXVsdGlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtdWx0aV9oZWFkXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RUeXBlID09ICdtdWx0aXBsZSc7IGVsc2Ugb3RoZXJcIj5cbiAgICAgICAgICA8aW9uLWl0ZW0+XG4gICAgICAgICAgICA8aW9uLWNoZWNrYm94XG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaXNBbGxDaGVja2VkXCJcbiAgICAgICAgICAgICAgKGlvbkNoYW5nZSk9XCJjaGVja0FsbCgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2lvbi1jaGVja2JveD5cbiAgICAgICAgICAgIDxpb24tbGFiZWw+XG4gICAgICAgICAgICAgIOWFqOmAiVxuICAgICAgICAgICAgICA8c3Bhbj7vvIh7eyBzZWxlY3RlZE51bSB9fS97eyBvcHRpb25zLmxlbmd0aCB9fe+8iTwvc3Bhbj48L2lvbi1sYWJlbFxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uIHNpemU9XCJzbWFsbFwiIGZpbGw9XCJjbGVhclwiIChjbGljayk9XCJkaXNtaXNzTW9kZWwoZmFsc2UpXCJcbiAgICAgICAgICAgICAgPuWPlua2iDwvaW9uLWJ1dHRvblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGlvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgZmlsbD1cImNsZWFyXCIgKGNsaWNrKT1cImRpc21pc3NNb2RlbCh0cnVlKVwiXG4gICAgICAgICAgICAgID7noa7lrpo8L2lvbi1idXR0b25cbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjb3RoZXI+XG4gICAgICAgICAgPGlvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgZmlsbD1cImNsZWFyXCIgKGNsaWNrKT1cImRpc21pc3NNb2RlbChmYWxzZSlcIlxuICAgICAgICAgICAgPuWPlua2iDwvaW9uLWJ1dHRvblxuICAgICAgICAgID5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBzaXplPVwic21hbGxcIiBmaWxsPVwiY2xlYXJcIiAoY2xpY2spPVwiZGlzbWlzc01vZGVsKHRydWUpXCJcbiAgICAgICAgICAgID7noa7lrpo8L2lvbi1idXR0b25cbiAgICAgICAgICA+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtdWx0aV9zY3JvbGxcIj5cbiAgICAgICAgPGlvbi1pdGVtXG4gICAgICAgICAgY2xhc3M9XCJtdWx0aV9zY3JvbGxfaXRlbSBoYWlybGluZXMtYm90dG9tXCJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgcm93IG9mIG9wdGlvbnNcIlxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RUeXBlID09ICdzaW5nbGUnID8gc2luZ2xlQ2hlY2socm93LnZhbHVlKSA6ICcnXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpb24tY2hlY2tib3hcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwicm93LmNoZWNrZWRcIlxuICAgICAgICAgICAgKGlvbkNoYW5nZSk9XCJzZWxlY3RUeXBlID09ICdtdWx0aXBsZScgPyBzZXRTZWxlY3ROdW0oKSA6ICcnXCJcbiAgICAgICAgICA+PC9pb24tY2hlY2tib3g+XG4gICAgICAgICAgPGlvbi1sYWJlbD57eyByb3cubGFiZWwgfX08L2lvbi1sYWJlbD5cbiAgICAgICAgPC9pb24taXRlbT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBLcmVGb3JtRmllbGRJb25TZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBpc0FsbENoZWNrZWQgPSBmYWxzZTtcbiAgLy8g57yT5a2YLeW9k+WJjemAieS4rVxuICBzZWxlY3RlZE51bSA9IDA7XG4gIF9vcHRpb25zOiBhbnk7IC8vIOWPr+mAiemhuVxuICBfb3B0aW9uc19vbGQ6IGFueTsgLy8g5Y+v6YCJ6aG5XG5cbiAgQElucHV0KCkgc2VsZWN0VHlwZSA9IFwibXVsdGlwbGVcIjsgLy9zaW5nbGVcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IG9wdGlvbnMoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9ucztcbiAgfVxuICBwdWJsaWMgc2V0IG9wdGlvbnModmFsdWU6IGFueSkge1xuICAgIHRoaXMuX29wdGlvbnMgPSBfLmNsb25lRGVlcCh2YWx1ZSk7XG4gICAgdGhpcy5fb3B0aW9uc19vbGQgPSB2YWx1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBtb2RhbENvbnRyb2xsZXI6IE1vZGFsQ29udHJvbGxlcikge31cblxuICAvL+WFqOmAiVxuICBjaGVja0FsbChlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5pc0FsbENoZWNrZWQgPT0gdHJ1ZSkge1xuICAgICAgdGhpcy5vcHRpb25zLmZvckVhY2goKGUpID0+IHtcbiAgICAgICAgZS5jaGVja2VkID0gdHJ1ZTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyDlhajpgInlkI7lj5bmtojmn5DkuIDpobnkuI3muIXnqbrpgInkuK3mlYjmnpzliKTmlq1cbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkTnVtID09PSB0aGlzLm9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy5mb3JFYWNoKChlKSA9PiB7XG4gICAgICAgICAgZS5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc2V0U2VsZWN0TnVtKCk7XG4gIH1cblxuICAvL+etm+mAiemAieS4rVxuICBzZXRTZWxlY3ROdW0oKSB7XG4gICAgdGhpcy5zZWxlY3RlZE51bSA9IHRoaXMub3B0aW9ucy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCkubGVuZ3RoO1xuICAgIHRoaXMuaXNBbGxDaGVja2VkID1cbiAgICAgIHRoaXMub3B0aW9ucy5sZW5ndGggPiAwICYmIHRoaXMuc2VsZWN0ZWROdW0gPT09IHRoaXMub3B0aW9ucy5sZW5ndGg7XG4gIH1cblxuICBzaW5nbGVDaGVjayh2YWx1ZSkge1xuICAgIHRoaXMub3B0aW9ucy5tYXAoKGVsZW1lbnQpID0+IHtcbiAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IGVsZW1lbnQudmFsdWUgPT09IHZhbHVlO1xuICAgICAgcmV0dXJuIGVsZW1lbnQ7XG4gICAgfSk7XG4gIH1cblxuICAvLyAwIOWPlua2iCAvIDEg56Gu5a6aXG4gIGRpc21pc3NNb2RlbCh0eXBlKSB7XG4gICAgbGV0IHNlbGVjdE9wdGlvbnMgPSBbXTtcbiAgICBpZiAodHlwZSkge1xuICAgICAgc2VsZWN0T3B0aW9ucyA9IHRoaXMub3B0aW9uc1xuICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGl0ZW0uY2hlY2tlZDtcbiAgICAgICAgfSlcbiAgICAgICAgLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgIHJldHVybiB7IGxhYmVsOiBpdGVtLmxhYmVsLCB2YWx1ZTogaXRlbS52YWx1ZSB9O1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMubW9kYWxDb250cm9sbGVyLmRpc21pc3Moc2VsZWN0T3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubW9kYWxDb250cm9sbGVyLmRpc21pc3MoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge31cbn1cbiJdfQ==