UNPKG

@ecip/auth

Version:
225 lines 18.4 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, ViewChild } from '@angular/core'; import { ModalHelper } from '@delon/theme'; import { SFComponent, } from '@delon/form'; import { STComponent } from "@delon/abc"; import { NzMessageService } from "ng-zorro-antd"; import { DataSourceService, RuleService } from "@ecip/service"; import { isNullOrUndefined } from "util"; export class AuthRuleComponent { /** * @param {?} modalHelper * @param {?} messageService * @param {?} ruleService * @param {?} dataSourceService */ constructor(modalHelper, messageService, ruleService, dataSourceService) { this.modalHelper = modalHelper; this.messageService = messageService; this.ruleService = ruleService; this.dataSourceService = dataSourceService; this.url = 'api/v1/sysrRule'; this.selectedIds = []; this.params = {}; this.schema = { properties: { ruleName: { type: 'string', title: '规则名称', }, srcDs: { type: "string", title: '源数据源', ui: { widget: 'select', width: 260, notFoundContent: '没有数据', dropdownMatchSelectWidth: false, asyncData: (/** * @return {?} */ () => this.dataSourceService.getVoList()) } }, }, }; this.columns = [ { title: '编号', type: 'checkbox', index: 'id' }, { title: '规则名称', index: 'ruleName', }, { title: '源数据源', index: 'srcDsName', }, { title: '同步类型', index: 'syncType', format: (/** * @param {?} item * @return {?} */ (item) => { switch (item.syncType) { case 'user': return '同步用户'; case 'dept': return '同步组织'; case 'other': return `自定义(表名:${item.destTable})`; } }) }, { title: 'Cron表达式', index: 'cron', format: (/** * @param {?} item * @return {?} */ (item) => isNullOrUndefined(item.cron) || item.cron == '' ? '(无)' : item.cron) }, { title: '操作', buttons: [ { text: '编辑', icon: 'edit', type: 'link', click: (/** * @param {?} record * @return {?} */ (record) => { return `/auth/rule/edit/${record.id}`; }), acl: { ability: ['rule:edit'] } }, // { // text: '编辑', // icon: 'edit', // type: 'static', // component: AuthRuleEditComponent, // click: (record, modal) =>{ // this.messageService.success("编辑成功"); // this.st.load(-1, this.params); // } // }, { text: '删除', icon: 'delete', type: 'del', click: (/** * @param {?} record * @param {?} modal * @param {?} component * @return {?} */ (record, modal, component) => { this.ruleService.deleteById(record.id).subscribe((/** * @return {?} */ () => { this.messageService.success("删除成功"); component.load(-1, this.params); })); }), acl: { ability: ['rule:remove'] } } ], } ]; } //即时监控选中项的ID列表 /** * @param {?} e * @return {?} */ checkboxChange(e) { this.selectedIds = []; for (let item of e) { this.selectedIds.push(item.id); } } //因为[formData]和st的params似乎不能绑定,所以手写了一个绑定数据的方法 /** * @return {?} */ formBind() { this.params = this.sf.value; } /** * @return {?} */ multiDelete() { //未选定任何一条 if (this.selectedIds.length == 0) { this.messageService.warning("未选择任何记录"); } else { this.ruleService.multiDelete(this.selectedIds).subscribe((/** * @return {?} */ () => { this.messageService.success("删除成功"); this.st.load(-1, this.params); })); } } } AuthRuleComponent.decorators = [ { type: Component, args: [{ selector: 'app-auth-ds', template: "<page-header [action]=\"phPhAction\">\r\n <ng-template #phPhAction>\r\n <button acl [acl-ability]=\"'rule:add'\" nz-button nzType=\"primary\" routerLink=\"/auth/rule/edit\">\u65B0\u5EFA</button>\r\n <!--<button nz-button (click)=\"multiDelete()\">\u5220\u9664</button>-->\r\n </ng-template>\r\n</page-header>\r\n<nz-card>\r\n <sf #sf mode=\"search\" [schema]=\"schema\" (formSubmit)=\"formBind();st.load(1, params);\" (formReset)=\"formBind();st.reset(params)\"></sf>\r\n <st #st [data]=\"url\" [columns]=\"columns\" (change)=\"checkboxChange($event)\" [req]=\"{params: params}\" [page]=\"{front: false}\"></st>\r\n</nz-card>\r\n" }] } ]; /** @nocollapse */ AuthRuleComponent.ctorParameters = () => [ { type: ModalHelper }, { type: NzMessageService }, { type: RuleService }, { type: DataSourceService } ]; AuthRuleComponent.propDecorators = { st: [{ type: ViewChild, args: ['st',] }], sf: [{ type: ViewChild, args: ['sf',] }] }; if (false) { /** @type {?} */ AuthRuleComponent.prototype.url; /** @type {?} */ AuthRuleComponent.prototype.selectedIds; /** @type {?} */ AuthRuleComponent.prototype.params; /** @type {?} */ AuthRuleComponent.prototype.st; /** @type {?} */ AuthRuleComponent.prototype.sf; /** @type {?} */ AuthRuleComponent.prototype.schema; /** @type {?} */ AuthRuleComponent.prototype.columns; /** * @type {?} * @private */ AuthRuleComponent.prototype.modalHelper; /** * @type {?} * @private */ AuthRuleComponent.prototype.messageService; /** @type {?} */ AuthRuleComponent.prototype.ruleService; /** * @type {?} * @private */ AuthRuleComponent.prototype.dataSourceService; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZWNpcC9hdXRoLyIsInNvdXJjZXMiOlsic3JjL3J1bGUvcnVsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxXQUFXLEdBQVksTUFBTSxhQUFhLENBQUM7QUFDbkQsT0FBTyxFQUFXLFdBQVcsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNqRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQTtBQUU1RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFRdkMsTUFBTSxPQUFPLGlCQUFpQjs7Ozs7OztJQXVHNUIsWUFBb0IsV0FBd0IsRUFDeEIsY0FBK0IsRUFDaEMsV0FBdUIsRUFDdEIsaUJBQW9DO1FBSHBDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUFpQjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN0QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBeEd4RCxRQUFHLEdBQUcsaUJBQWlCLENBQUM7UUFFeEIsZ0JBQVcsR0FBWSxFQUFFLENBQUM7UUFFMUIsV0FBTSxHQUFNLEVBQUcsQ0FBQztRQVNoQixXQUFNLEdBQWE7WUFDakIsVUFBVSxFQUFFO2dCQUNWLFFBQVEsRUFBRTtvQkFDUixJQUFJLEVBQUUsUUFBUTtvQkFDZCxLQUFLLEVBQUUsTUFBTTtpQkFDZDtnQkFDRCxLQUFLLEVBQUU7b0JBQ0wsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsS0FBSyxFQUFFLE1BQU07b0JBQ2IsRUFBRSxF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QUM5Qiw4Q0FBNEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtNb2RhbEhlbHBlcn0gZnJvbSAnQGRlbG9uL3RoZW1lJztcclxuaW1wb3J0IHtTRkNvbXBvbmVudCwgU0ZTY2hlbWEsfSBmcm9tICdAZGVsb24vZm9ybSc7XHJcbmltcG9ydCB7U1RDb2x1bW4sIFNUQ29tcG9uZW50fSBmcm9tIFwiQGRlbG9uL2FiY1wiO1xyXG5pbXBvcnQge056TWVzc2FnZVNlcnZpY2V9IGZyb20gXCJuZy16b3Jyby1hbnRkXCI7XHJcbmltcG9ydCB7RGF0YVNvdXJjZVNlcnZpY2UsIFJ1bGVTZXJ2aWNlfSBmcm9tIFwiQGVjaXAvc2VydmljZVwiXHJcbmltcG9ydCB7b2Z9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7aXNOdWxsT3JVbmRlZmluZWR9IGZyb20gXCJ1dGlsXCI7XHJcblxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWF1dGgtZHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ydWxlLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhSdWxlQ29tcG9uZW50IHtcclxuXHJcbiAgdXJsID0gJ2FwaS92MS9zeXNyUnVsZSc7XHJcblxyXG4gIHNlbGVjdGVkSWRzOnN0cmluZ1tdID0gW107XHJcblxyXG4gIHBhcmFtczphbnk9IHsgfTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnc3QnKVxyXG4gIHN0OiBTVENvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnc2YnKVxyXG4gIHNmOiBTRkNvbXBvbmVudDtcclxuXHJcblxyXG4gIHNjaGVtYTogU0ZTY2hlbWEgPSB7XHJcbiAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICAgIHJ1bGVOYW1lOiB7XHJcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgICAgdGl0bGU6ICfop4TliJnlkI3np7AnLFxyXG4gICAgICB9LFxyXG4gICAgICBzcmNEczoge1xyXG4gICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXHJcbiAgICAgICAgdGl0bGU6ICfmupDmlbDmja7mupAnLFxyXG4gICAgICAgIHVpOiB7XHJcbiAgICAgICAgICB3aWRnZXQ6ICdzZWxlY3QnLFxyXG4gICAgICAgICAgd2lkdGg6IDI2MCxcclxuICAgICAgICAgIG5vdEZvdW5kQ29udGVudDogJ+ayoeacieaVsOaNricsXHJcbiAgICAgICAgICBkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGg6IGZhbHNlLFxyXG4gICAgICAgICAgYXN5bmNEYXRhOiAoKSA9PiB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLmdldFZvTGlzdCgpXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICB9O1xyXG5cclxuICBjb2x1bW5zOiBTVENvbHVtbltdID0gW1xyXG4gICAge1xyXG4gICAgICB0aXRsZTogJ+e8luWPtycsXHJcbiAgICAgIHR5cGU6J2NoZWNrYm94JyxcclxuICAgICAgaW5kZXg6J2lkJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGl0bGU6ICfop4TliJnlkI3np7AnLFxyXG4gICAgICBpbmRleDogJ3J1bGVOYW1lJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRpdGxlOiAn5rqQ5pWw5o2u5rqQJyxcclxuICAgICAgaW5kZXg6ICdzcmNEc05hbWUnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGl0bGU6ICflkIzmraXnsbvlnosnLFxyXG4gICAgICBpbmRleDogJ3N5bmNUeXBlJyxcclxuICAgICAgZm9ybWF0OihpdGVtOmFueSk9PntcclxuICAgICAgICBzd2l0Y2goaXRlbS5zeW5jVHlwZSl7XHJcbiAgICAgICAgICBjYXNlICd1c2VyJzpyZXR1cm4gJ+WQjOatpeeUqOaItyc7XHJcbiAgICAgICAgICBjYXNlICdkZXB0JzpyZXR1cm4gJ+WQjOatpee7hOe7hyc7XHJcbiAgICAgICAgICBjYXNlICdvdGhlcic6cmV0dXJuIGDoh6rlrprkuYnvvIjooajlkI3vvJoke2l0ZW0uZGVzdFRhYmxlfe+8iWA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0aXRsZTogJ0Nyb27ooajovr7lvI8nLFxyXG4gICAgICBpbmRleDogJ2Nyb24nLFxyXG4gICAgICBmb3JtYXQ6KGl0ZW06YW55KT0+IGlzTnVsbE9yVW5kZWZpbmVkKGl0ZW0uY3JvbikgfHwgaXRlbS5jcm9uPT0nJyA/ICco5pegKSc6IGl0ZW0uY3JvblxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGl0bGU6ICfmk43kvZwnLFxyXG4gICAgICBidXR0b25zOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdGV4dDogJ+e8lui+kScsXHJcbiAgICAgICAgICBpY29uOiAnZWRpdCcsXHJcbiAgICAgICAgICB0eXBlOiAnbGluaycsXHJcbiAgICAgICAgICBjbGljazogKHJlY29yZCkgPT57XHJcbiAgICAgICAgICAgIHJldHVybiBgL2F1dGgvcnVsZS9lZGl0LyR7cmVjb3JkLmlkfWBcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBhY2w6IHsgYWJpbGl0eTogWydydWxlOmVkaXQnXSB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyB7XHJcbiAgICAgICAgLy8gICB0ZXh0OiAn57yW6L6RJyxcclxuICAgICAgICAvLyAgIGljb246ICdlZGl0JyxcclxuICAgICAgICAvLyAgIHR5cGU6ICdzdGF0aWMnLFxyXG4gICAgICAgIC8vICAgY29tcG9uZW50OiBBdXRoUnVsZUVkaXRDb21wb25lbnQsXHJcbiAgICAgICAgLy8gICBjbGljazogKHJlY29yZCwgbW9kYWwpID0+e1xyXG4gICAgICAgIC8vICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3MoXCLnvJbovpHmiJDlip9cIik7XHJcbiAgICAgICAgLy8gICAgIHRoaXMuc3QubG9hZCgtMSwgdGhpcy5wYXJhbXMpO1xyXG4gICAgICAgIC8vICAgfVxyXG4gICAgICAgIC8vIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdGV4dDogJ+WIoOmZpCcsXHJcbiAgICAgICAgICBpY29uOiAnZGVsZXRlJyxcclxuICAgICAgICAgIHR5cGU6ICdkZWwnLFxyXG4gICAgICAgICAgY2xpY2s6IChyZWNvcmQsIG1vZGFsLCBjb21wb25lbnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5ydWxlU2VydmljZS5kZWxldGVCeUlkKHJlY29yZC5pZCkuc3Vic2NyaWJlKCgpPT57XHJcbiAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5zdWNjZXNzKFwi5Yig6Zmk5oiQ5YqfXCIpO1xyXG4gICAgICAgICAgICAgIGNvbXBvbmVudC5sb2FkKC0xLCB0aGlzLnBhcmFtcyk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGFjbDogeyBhYmlsaXR5OiBbJ3J1bGU6cmVtb3ZlJ10gfVxyXG4gICAgICAgIH1cclxuICAgICAgXSxcclxuICAgIH1cclxuICBdO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsSGVscGVyOiBNb2RhbEhlbHBlcixcclxuICAgICAgICAgICAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOk56TWVzc2FnZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHVibGljIHJ1bGVTZXJ2aWNlOlJ1bGVTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgZGF0YVNvdXJjZVNlcnZpY2U6IERhdGFTb3VyY2VTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuXHJcblxyXG4gIC8v5Y2z5pe255uR5o6n6YCJ5Lit6aG555qESUTliJfooahcclxuICBjaGVja2JveENoYW5nZShlOiBhbnlbXSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZElkcyA9IFtdO1xyXG4gICAgZm9yKGxldCBpdGVtIG9mIGUpe1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSWRzLnB1c2goaXRlbS5pZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL+WboOS4ultmb3JtRGF0YV3lkoxzdOeahHBhcmFtc+S8vOS5juS4jeiDvee7keWumu+8jOaJgOS7peaJi+WGmeS6huS4gOS4que7keWumuaVsOaNrueahOaWueazlVxyXG4gIGZvcm1CaW5kKCkge1xyXG4gICAgdGhpcy5wYXJhbXMgPSB0aGlzLnNmLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgbXVsdGlEZWxldGUoKXtcclxuICAgIC8v5pyq6YCJ5a6a5Lu75L2V5LiA5p2hXHJcbiAgICBpZih0aGlzLnNlbGVjdGVkSWRzLmxlbmd0aD09MCl7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2Uud2FybmluZyhcIuacqumAieaLqeS7u+S9leiusOW9lVwiKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLnJ1bGVTZXJ2aWNlLm11bHRpRGVsZXRlKHRoaXMuc2VsZWN0ZWRJZHMpLnN1YnNjcmliZSgoKT0+e1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2Uuc3VjY2VzcyhcIuWIoOmZpOaIkOWKn1wiKTtcclxuICAgICAgICB0aGlzLnN0LmxvYWQoLTEsIHRoaXMucGFyYW1zKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=