UNPKG

ng-yunzai-mobile

Version:

1. 适配yunzai_uni_app_x

124 lines 8.3 kB
/** * @fileoverview added by tsickle * Generated from: acl/acl.directive.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Directive, Input, ViewContainerRef, TemplateRef } from '@angular/core'; import { UserService } from '../user/user.service'; export class AclDirective { /** * @param {?} user * @param {?} viewContainer * @param {?} templateRef */ constructor(user, viewContainer, templateRef) { this.user = user; this.viewContainer = viewContainer; this.templateRef = templateRef; } /** * @param {?} acl * @return {?} */ set condition(acl) { // 系统代码 /** @type {?} */ const systemCode = acl[0]; // 路由 /** @type {?} */ const elementRoute = acl[1]; // 元素key /** @type {?} */ const elementKey = acl[2]; /** @type {?} */ const tempArray = []; // tslint:disable-next-line: prefer-const /** @type {?} */ let hasElement = false; // 过滤菜单通过 系统代码 路由 this.filterMenuByAcl(this.filterSystemSider(systemCode), tempArray, elementRoute); tempArray.forEach((/** * @param {?} menu * @return {?} */ (menu) => { if (menu.menuAuths.includes(elementKey)) { hasElement = true; } })); if (hasElement) { this.viewContainer.createEmbeddedView(this.templateRef); } else { this.viewContainer.clear(); } } /** * @param {?} systemcode * @return {?} */ filterSystemSider(systemcode) { return this.user.get().menu.filter((/** * @param {?} menu * @return {?} */ (menu) => { return menu.systemCode === systemcode; })); } /** * @param {?} menus * @param {?} tempArray * @param {?} elementRoute * @return {?} */ filterMenuByAcl(menus, tempArray, elementRoute) { menus.forEach((/** * @param {?} menu * @return {?} */ (menu) => { if (menu.children.length > 0) { this.filterMenuByAcl(menu.children, tempArray, elementRoute); } else { if (menu.link === elementRoute) { tempArray.push(menu); } } })); } } AclDirective.decorators = [ { type: Directive, args: [{ // tslint:disable-next-line: directive-selector selector: '[acl]' },] } ]; /** @nocollapse */ AclDirective.ctorParameters = () => [ { type: UserService }, { type: ViewContainerRef }, { type: TemplateRef } ]; AclDirective.propDecorators = { condition: [{ type: Input, args: ['acl',] }] }; if (false) { /** * @type {?} * @private */ AclDirective.prototype.user; /** * @type {?} * @private */ AclDirective.prototype.viewContainer; /** * @type {?} * @private */ AclDirective.prototype.templateRef; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNsLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXl1bnphaS1tb2JpbGUvIiwic291cmNlcyI6WyJhY2wvYWNsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFPbkQsTUFBTSxPQUFPLFlBQVk7Ozs7OztJQUl2QixZQUNVLElBQWlCLEVBQ2pCLGFBQStCLEVBQy9CLFdBQTZCO1FBRjdCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQy9CLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtJQUV2QyxDQUFDOzs7OztJQUVELElBQ0ksU0FBUyxDQUFDLEdBQWE7OztjQUVuQixVQUFVLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQzs7O2NBRW5CLFlBQVksR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDOzs7Y0FFckIsVUFBVSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7O2NBQ25CLFNBQVMsR0FBaUIsRUFBRTs7O1lBRTlCLFVBQVUsR0FBRyxLQUFLO1FBQ3RCLGlCQUFpQjtRQUNqQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDbEYsU0FBUyxDQUFDLE9BQU87Ozs7UUFBQyxDQUFDLElBQVcsRUFBRSxFQUFFO1lBQ2hDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ3ZDLFVBQVUsR0FBRyxJQUFJLENBQUM7YUFDbkI7UUFDSCxDQUFDLEVBQUMsQ0FBQztRQUNILElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDekQ7YUFBTTtZQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDOzs7OztJQUVELGlCQUFpQixDQUFDLFVBQWtCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTTs7OztRQUFDLENBQUMsSUFBVyxFQUFFLEVBQUU7WUFDakQsT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsQ0FBQztRQUN4QyxDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7Ozs7SUFFRCxlQUFlLENBQ2IsS0FBbUIsRUFDbkIsU0FBdUIsRUFDdkIsWUFBb0I7UUFFcEIsS0FBSyxDQUFDLE9BQU87Ozs7UUFBQyxDQUFDLElBQVcsRUFBRSxFQUFFO1lBQzVCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUM1QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO2FBQzlEO2lCQUFNO2dCQUNMLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLEVBQUU7b0JBQzlCLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3RCO2FBQ0Y7UUFDSCxDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7OztZQTVERixTQUFTLFNBQUM7O2dCQUVULFFBQVEsRUFBRSxPQUFPO2FBQ2xCOzs7O1lBTlEsV0FBVztZQURPLGdCQUFnQjtZQUFFLFdBQVc7Ozt3QkFtQnJELEtBQUssU0FBQyxLQUFLOzs7Ozs7O0lBTlYsNEJBQXlCOzs7OztJQUN6QixxQ0FBdUM7Ozs7O0lBQ3ZDLG1DQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFZpZXdDb250YWluZXJSZWYsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vdXNlci91c2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTaWRlciB9IGZyb20gJy4uL3VzZXIvdXNlci5pbnRlcmZhY2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBkaXJlY3RpdmUtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ1thY2xdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWNsRGlyZWN0aXZlIHtcclxuXHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdXNlcjogVXNlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+XHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoJ2FjbCcpXHJcbiAgc2V0IGNvbmRpdGlvbihhY2w6IHN0cmluZ1tdKSB7XHJcbiAgICAvLyDns7vnu5/ku6PnoIFcclxuICAgIGNvbnN0IHN5c3RlbUNvZGUgPSBhY2xbMF07XHJcbiAgICAvLyDot6/nlLFcclxuICAgIGNvbnN0IGVsZW1lbnRSb3V0ZSA9IGFjbFsxXTtcclxuICAgIC8vIOWFg+e0oGtleVxyXG4gICAgY29uc3QgZWxlbWVudEtleSA9IGFjbFsyXTtcclxuICAgIGNvbnN0IHRlbXBBcnJheTogQXJyYXk8U2lkZXI+ID0gW107XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IHByZWZlci1jb25zdFxyXG4gICAgbGV0IGhhc0VsZW1lbnQgPSBmYWxzZTtcclxuICAgIC8vIOi/h+a7pOiPnOWNlemAmui/hyDns7vnu5/ku6PnoIEg6Lev55SxXHJcbiAgICB0aGlzLmZpbHRlck1lbnVCeUFjbCh0aGlzLmZpbHRlclN5c3RlbVNpZGVyKHN5c3RlbUNvZGUpLCB0ZW1wQXJyYXksIGVsZW1lbnRSb3V0ZSk7XHJcbiAgICB0ZW1wQXJyYXkuZm9yRWFjaCgobWVudTogU2lkZXIpID0+IHtcclxuICAgICAgaWYgKG1lbnUubWVudUF1dGhzLmluY2x1ZGVzKGVsZW1lbnRLZXkpKSB7XHJcbiAgICAgICAgaGFzRWxlbWVudCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKGhhc0VsZW1lbnQpIHtcclxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZmlsdGVyU3lzdGVtU2lkZXIoc3lzdGVtY29kZTogc3RyaW5nKTogQXJyYXk8U2lkZXI+IHtcclxuICAgIHJldHVybiB0aGlzLnVzZXIuZ2V0KCkubWVudS5maWx0ZXIoKG1lbnU6IFNpZGVyKSA9PiB7XHJcbiAgICAgIHJldHVybiBtZW51LnN5c3RlbUNvZGUgPT09IHN5c3RlbWNvZGU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZpbHRlck1lbnVCeUFjbChcclxuICAgIG1lbnVzOiBBcnJheTxTaWRlcj4sXHJcbiAgICB0ZW1wQXJyYXk6IEFycmF5PFNpZGVyPixcclxuICAgIGVsZW1lbnRSb3V0ZTogc3RyaW5nXHJcbiAgKTogdm9pZCB7XHJcbiAgICBtZW51cy5mb3JFYWNoKChtZW51OiBTaWRlcikgPT4ge1xyXG4gICAgICBpZiAobWVudS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJNZW51QnlBY2wobWVudS5jaGlsZHJlbiwgdGVtcEFycmF5LCBlbGVtZW50Um91dGUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChtZW51LmxpbmsgPT09IGVsZW1lbnRSb3V0ZSkge1xyXG4gICAgICAgICAgdGVtcEFycmF5LnB1c2gobWVudSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19