@kre-form/ionic
Version:
204 lines • 13.6 kB
JavaScript
/**
* @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==