UNPKG

@ecip/auth

Version:
249 lines 18.7 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, Input, ViewChild } from '@angular/core'; import { NzMessageService, NzModalRef } from 'ng-zorro-antd'; import { SFComponent } from '@delon/form'; import { DictService, DataSourceService } from "@ecip/service"; import { map } from "rxjs/operators"; var AuthDataSourceEditComponent = /** @class */ (function () { function AuthDataSourceEditComponent(modal, dataSourceService, messageService, dictService) { var _this = this; this.modal = modal; this.dataSourceService = dataSourceService; this.messageService = messageService; this.dictService = dictService; this.title = '编辑数据源'; this.schema = { properties: { dsName: { type: 'string', title: '数据源名称', ui: { //异步验证:判断是否已经存在相同数据源名称的记录, //如果是修改数据源,和自己原本的数据源名称相同则忽略 validator: (/** * @param {?} value * @return {?} */ function (value) { return _this.dataSourceService.existsDsName(value) .pipe(map((/** * @param {?} res * @return {?} */ function (res) { return (res && (_this.isNew || _this.record.dsName != value)) ? [{ keyword: 'required', message: '数据源名已存在' }] : []; }))); }) } }, dbType: { type: "string", title: '数据库类型', default: '', ui: { widget: 'select' } }, dbName: { type: 'string', title: '数据库名' }, url: { type: 'string', title: '协议(URL前缀)' }, ip: { type: 'string', title: '主机(IP或域名)' }, port: { type: 'number', title: '端口号', ui: { widget: 'string', } }, username: { type: 'string', title: '用户名' }, password: { type: 'string', title: '密码', ui: { widget: 'string', type: 'password' } }, }, required: ['dsName', 'dbType', 'dbName', 'url', 'ip', 'port', 'username', 'password'], }; this.ui = { '*': { grid: { span: 18, offset: 2 }, }, }; } /** * @return {?} */ AuthDataSourceEditComponent.prototype.ngOnInit = /** * @return {?} */ function () { if (this.isNew === true) { this.title = '新建数据源'; } }; /** * @return {?} */ AuthDataSourceEditComponent.prototype.ngAfterViewInit = /** * @return {?} */ function () { var _this = this; //异步渲染下拉框 this.dictService.getTypeList('dbType').subscribe((/** * @param {?} res * @return {?} */ function (res) { _this.sf.schema.properties.dbType.enum = [{ value: '', label: '请选择' }].concat(res); _this.sf.refreshSchema(); })); }; /** * @param {?} dataSource * @return {?} */ AuthDataSourceEditComponent.prototype.submit = /** * @param {?} dataSource * @return {?} */ function (dataSource) { if (this.isNew === true) { this.create(dataSource); } else { this.update(dataSource); } }; /** * @param {?} dataSource * @return {?} */ AuthDataSourceEditComponent.prototype.create = /** * @param {?} dataSource * @return {?} */ function (dataSource) { var _this = this; this.dataSourceService.post(dataSource).subscribe((/** * @return {?} */ function () { _this.modal.close(true); })); }; /** * @param {?} dataSource * @return {?} */ AuthDataSourceEditComponent.prototype.update = /** * @param {?} dataSource * @return {?} */ function (dataSource) { var _this = this; this.dataSourceService.put(this.record.id, dataSource).subscribe((/** * @return {?} */ function () { _this.modal.close(true); })); }; /** * @param {?} dataSource * @return {?} */ AuthDataSourceEditComponent.prototype.testConnection = /** * @param {?} dataSource * @return {?} */ function (dataSource) { var _this = this; this.dataSourceService.testConnection(dataSource).subscribe((/** * @param {?} res * @return {?} */ function (res) { if (res.body === true) { _this.messageService.success("连接成功"); } else { _this.messageService.error("连接失败"); } })); }; /** * @return {?} */ AuthDataSourceEditComponent.prototype.close = /** * @return {?} */ function () { this.modal.destroy(); }; AuthDataSourceEditComponent.decorators = [ { type: Component, args: [{ selector: 'app-auth-ds-edit', template: "<div class=\"modal-header\">\r\n <div class=\"modal-title\">{{title}}</div>\r\n</div>\r\n<nz-spin *ngIf=\"!isNew&&!record\"></nz-spin>\r\n<sf #sf mode=\"default\" [schema]=\"schema\" [ui]=\"ui\" [formData]=\"record\" button=\"none\">\r\n <div class=\"modal-footer\">\r\n <button nz-button type=\"button\" nzType=\"primary\" (click)=\"testConnection(sf.value)\" [disabled]=\"!sf.valid\" [nzLoading]=\"dataSourceService.http.loading\">\u6D4B\u8BD5\u8FDE\u63A5</button>\r\n <button nz-button type=\"submit\" nzType=\"primary\" (click)=\"submit(sf.value)\" [disabled]=\"!sf.valid\" [nzLoading]=\"dataSourceService.http.loading\">\u4FDD\u5B58</button>\r\n <button nz-button type=\"button\" (click)=\"close()\">\u53D6\u6D88</button>\r\n </div>\r\n</sf>\r\n" }] } ]; /** @nocollapse */ AuthDataSourceEditComponent.ctorParameters = function () { return [ { type: NzModalRef }, { type: DataSourceService }, { type: NzMessageService }, { type: DictService } ]; }; AuthDataSourceEditComponent.propDecorators = { sf: [{ type: ViewChild, args: ['sf',] }], record: [{ type: Input }], isNew: [{ type: Input }] }; return AuthDataSourceEditComponent; }()); export { AuthDataSourceEditComponent }; if (false) { /** @type {?} */ AuthDataSourceEditComponent.prototype.sf; /** @type {?} */ AuthDataSourceEditComponent.prototype.record; /** @type {?} */ AuthDataSourceEditComponent.prototype.isNew; /** @type {?} */ AuthDataSourceEditComponent.prototype.title; /** @type {?} */ AuthDataSourceEditComponent.prototype.schema; /** @type {?} */ AuthDataSourceEditComponent.prototype.ui; /** * @type {?} * @private */ AuthDataSourceEditComponent.prototype.modal; /** @type {?} */ AuthDataSourceEditComponent.prototype.dataSourceService; /** * @type {?} * @private */ AuthDataSourceEditComponent.prototype.messageService; /** * @type {?} * @private */ AuthDataSourceEditComponent.prototype.dictService; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHNlZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BlY2lwL2F1dGgvIiwic291cmNlcyI6WyJzcmMvZGF0YXNvdXJjZS9lZGl0L2RzZWRpdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBd0IsTUFBTSxhQUFhLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkM7SUErRUUscUNBQ1UsS0FBaUIsRUFDbEIsaUJBQW1DLEVBQ2xDLGNBQStCLEVBQy9CLFdBQXVCO1FBSmpDLGlCQUtJO1FBSk0sVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNsQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ2xDLG1CQUFjLEdBQWQsY0FBYyxDQUFpQjtRQUMvQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQXBFakMsVUFBSyxHQUFDLE9BQU8sQ0FBQztRQUVkLFdBQU0sR0FBYTtZQUNqQixVQUFVLEVBQUU7Z0JBQ1YsTUFBTSxFQUFFO29CQUNOLElBQUksRUFBRSxRQUFRO29CQUNkLEtBQUssRUFBRSxPQUFPO29CQUNkLEVBQUUsRUFBQzs7O3dCQUdELFNBQVM7Ozs7d0JBQUUsVUFBQyxLQUFVLElBQUssT0FBQSxLQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQzs2QkFDbEUsSUFBSSxDQUFFLEdBQUc7Ozs7d0JBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUksQ0FBQyxLQUFLLElBQUks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LDZDQUNhOztJQUViLDRDQUNnQjs7SUFFaEIsNENBQWM7O0lBRWQsNkNBc0RFOztJQUVGLHlDQUlFOzs7OztJQUdBLDRDQUF5Qjs7SUFDekIsd0RBQTBDOzs7OztJQUMxQyxxREFBdUM7Ozs7O0lBQ3ZDLGtEQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTnpNZXNzYWdlU2VydmljZSwgTnpNb2RhbFJlZiB9IGZyb20gJ25nLXpvcnJvLWFudGQnO1xyXG5pbXBvcnQgeyBTRkNvbXBvbmVudCwgU0ZTY2hlbWEsIFNGVUlTY2hlbWEgfSBmcm9tICdAZGVsb24vZm9ybSc7XHJcbmltcG9ydCB7IERpY3RTZXJ2aWNlLCBEYXRhU291cmNlU2VydmljZSB9IGZyb20gXCJAZWNpcC9zZXJ2aWNlXCI7XHJcbmltcG9ydCB7bWFwfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWF1dGgtZHMtZWRpdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RzZWRpdC5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoRGF0YVNvdXJjZUVkaXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXR7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3NmJylcclxuICBzZjpTRkNvbXBvbmVudDtcclxuXHJcbiAgQElucHV0KClcclxuICByZWNvcmQ6IGFueSA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaXNOZXc6IGJvb2xlYW4gO1xyXG5cclxuICB0aXRsZT0n57yW6L6R5pWw5o2u5rqQJztcclxuXHJcbiAgc2NoZW1hOiBTRlNjaGVtYSA9IHtcclxuICAgIHByb3BlcnRpZXM6IHtcclxuICAgICAgZHNOYW1lOiB7XHJcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgICAgdGl0bGU6ICfmlbDmja7mupDlkI3np7AnLFxyXG4gICAgICAgIHVpOntcclxuICAgICAgICAgIC8v5byC5q2l6aqM6K+B77ya5Yik5pat5piv5ZCm5bey57uP5a2Y5Zyo55u45ZCM5pWw5o2u5rqQ5ZCN56ew55qE6K6w5b2V77yMXHJcbiAgICAgICAgICAvL+WmguaenOaYr+S/ruaUueaVsOaNrua6kO+8jOWSjOiHquW3seWOn+acrOeahOaVsOaNrua6kOWQjeensOebuOWQjOWImeW/veeVpVxyXG4gICAgICAgICAgdmFsaWRhdG9yOiAodmFsdWU6IGFueSkgPT4gdGhpcy5kYXRhU291cmNlU2VydmljZS5leGlzdHNEc05hbWUodmFsdWUpXHJcbiAgICAgICAgICAgIC5waXBlKCBtYXAocmVzID0+IChyZXMgJiYgKHRoaXMuaXNOZXcgfHwgdGhpcy5yZWNvcmQuZHNOYW1lIT12YWx1ZSkpID8gWyB7IGtleXdvcmQ6ICdyZXF1aXJlZCcsIG1lc3NhZ2U6ICfmlbDmja7mupDlkI3lt7LlrZjlnKgnfSBdIDogW10pKVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZGJUeXBlOiB7XHJcbiAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcclxuICAgICAgICB0aXRsZTogJ+aVsOaNruW6k+exu+WeiycsXHJcbiAgICAgICAgZGVmYXVsdDogJycsXHJcbiAgICAgICAgdWk6IHtcclxuICAgICAgICAgIHdpZGdldDogJ3NlbGVjdCdcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGRiTmFtZToge1xyXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICAgIHRpdGxlOiAn5pWw5o2u5bqT5ZCNJ1xyXG4gICAgICB9LFxyXG4gICAgICB1cmw6IHtcclxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgICB0aXRsZTogJ+WNj+iurihVUkzliY3nvIApJ1xyXG4gICAgICB9LFxyXG4gICAgICBpcDoge1xyXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICAgIHRpdGxlOiAn5Li75py6KElQ5oiW5Z+f5ZCNKSdcclxuICAgICAgfSxcclxuICAgICAgcG9ydDoge1xyXG4gICAgICAgIHR5cGU6ICdudW1iZXInLFxyXG4gICAgICAgIHRpdGxlOiAn56uv5Y+j5Y+3JyxcclxuICAgICAgICB1aTp7XHJcbiAgICAgICAgICB3aWRnZXQ6ICdzdHJpbmcnLFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgdXNlcm5hbWU6IHtcclxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgICB0aXRsZTogJ+eUqOaIt+WQjSdcclxuICAgICAgfSxcclxuICAgICAgcGFzc3dvcmQ6IHtcclxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgICB0aXRsZTogJ+WvhueggScsXHJcbiAgICAgICAgdWk6e1xyXG4gICAgICAgICAgd2lkZ2V0OiAnc3RyaW5nJyxcclxuICAgICAgICAgIHR5cGU6ICdwYXNzd29yZCdcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgcmVxdWlyZWQ6IFsnZHNOYW1lJywnZGJUeXBlJywnZGJOYW1lJywndXJsJywnaXAnLCdwb3J0JywndXNlcm5hbWUnLCdwYXNzd29yZCddLFxyXG5cclxuICB9O1xyXG5cclxuICB1aTogU0ZVSVNjaGVtYSA9IHtcclxuICAgICcqJzoge1xyXG4gICAgICBncmlkOiB7IHNwYW46IDE4LCBvZmZzZXQ6IDIgfSxcclxuICAgIH0sXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG1vZGFsOiBOek1vZGFsUmVmLFxyXG4gICAgcHVibGljIGRhdGFTb3VyY2VTZXJ2aWNlOkRhdGFTb3VyY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTpOek1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkaWN0U2VydmljZTpEaWN0U2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZih0aGlzLmlzTmV3PT09dHJ1ZSl7XHJcbiAgICAgIHRoaXMudGl0bGU9J+aWsOW7uuaVsOaNrua6kCc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAvL+W8guatpea4suafk+S4i+aLieahhlxyXG4gICAgdGhpcy5kaWN0U2VydmljZS5nZXRUeXBlTGlzdCgnZGJUeXBlJykuc3Vic2NyaWJlKChyZXM6e3ZhbHVlLCBsYWJlbH1bXSk9PntcclxuICAgICAgdGhpcy5zZi5zY2hlbWEucHJvcGVydGllcy5kYlR5cGUuZW51bSA9IFt7dmFsdWU6JycsIGxhYmVsOifor7fpgInmi6knfV0uY29uY2F0KHJlcyk7XHJcbiAgICAgIHRoaXMuc2YucmVmcmVzaFNjaGVtYSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgc3VibWl0KGRhdGFTb3VyY2U6YW55KXtcclxuICAgIGlmKHRoaXMuaXNOZXc9PT10cnVlKXtcclxuICAgICAgdGhpcy5jcmVhdGUoZGF0YVNvdXJjZSk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy51cGRhdGUoZGF0YVNvdXJjZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGUoZGF0YVNvdXJjZTogYW55KSB7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLnBvc3QoZGF0YVNvdXJjZSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5tb2RhbC5jbG9zZSh0cnVlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlKGRhdGFTb3VyY2U6IGFueSkge1xyXG4gICAgdGhpcy5kYXRhU291cmNlU2VydmljZS5wdXQodGhpcy5yZWNvcmQuaWQsIGRhdGFTb3VyY2UpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMubW9kYWwuY2xvc2UodHJ1ZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHRlc3RDb25uZWN0aW9uKGRhdGFTb3VyY2U6IGFueSl7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLnRlc3RDb25uZWN0aW9uKGRhdGFTb3VyY2UpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICBpZihyZXMuYm9keT09PXRydWUpe1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2Uuc3VjY2VzcyhcIui/nuaOpeaIkOWKn1wiKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihcIui/nuaOpeWksei0pVwiKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpIHtcclxuICAgIHRoaXMubW9kYWwuZGVzdHJveSgpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19