UNPKG

@ecip/auth

Version:
223 lines 17.5 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"; export class AuthDataSourceEditComponent { /** * @param {?} modal * @param {?} dataSourceService * @param {?} messageService * @param {?} dictService */ constructor(modal, dataSourceService, messageService, dictService) { 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 {?} */ (value) => this.dataSourceService.existsDsName(value) .pipe(map((/** * @param {?} res * @return {?} */ res => (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 {?} */ ngOnInit() { if (this.isNew === true) { this.title = '新建数据源'; } } /** * @return {?} */ ngAfterViewInit() { //异步渲染下拉框 this.dictService.getTypeList('dbType').subscribe((/** * @param {?} res * @return {?} */ (res) => { this.sf.schema.properties.dbType.enum = [{ value: '', label: '请选择' }].concat(res); this.sf.refreshSchema(); })); } /** * @param {?} dataSource * @return {?} */ submit(dataSource) { if (this.isNew === true) { this.create(dataSource); } else { this.update(dataSource); } } /** * @param {?} dataSource * @return {?} */ create(dataSource) { this.dataSourceService.post(dataSource).subscribe((/** * @return {?} */ () => { this.modal.close(true); })); } /** * @param {?} dataSource * @return {?} */ update(dataSource) { this.dataSourceService.put(this.record.id, dataSource).subscribe((/** * @return {?} */ () => { this.modal.close(true); })); } /** * @param {?} dataSource * @return {?} */ testConnection(dataSource) { this.dataSourceService.testConnection(dataSource).subscribe((/** * @param {?} res * @return {?} */ res => { if (res.body === true) { this.messageService.success("连接成功"); } else { this.messageService.error("连接失败"); } })); } /** * @return {?} */ close() { 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 = () => [ { type: NzModalRef }, { type: DataSourceService }, { type: NzMessageService }, { type: DictService } ]; AuthDataSourceEditComponent.propDecorators = { sf: [{ type: ViewChild, args: ['sf',] }], record: [{ type: Input }], isNew: [{ type: Input }] }; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHNlZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BlY2lwL2F1dGgvIiwic291cmNlcyI6WyJzcmMvZGF0YXNvdXJjZS9lZGl0L2RzZWRpdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBd0IsTUFBTSxhQUFhLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFNbkMsTUFBTSxPQUFPLDJCQUEyQjs7Ozs7OztJQTJFdEMsWUFDVSxLQUFpQixFQUNsQixpQkFBbUMsRUFDbEMsY0FBK0IsRUFDL0IsV0FBdUI7UUFIdkIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNsQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ2xDLG1CQUFjLEdBQWQsY0FBYyxDQUFpQjtRQUMvQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQXBFakMsVUFBSyxHQUFDLE9BQU8sQ0FBQztRQUVkLFdBQU0sR0FBYTtZQUNqQixVQUFVLEVBQUU7Z0JBQ1YsTUFBTSxFQUFFO29CQUNOLElBQUksRUFBRSxRQUFRO29CQUNkLEtBQUssRUFBRSxPQUFPO29CQUNkLEVBQUUsRUFBQzs7O3dCQUdELFNBQVM7Ozs7d0JBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDOzZCQUNsRSxJQUFJLENBQUUsR0FBRzs7Ozt3QkFBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFB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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOek1lc3NhZ2VTZXJ2aWNlLCBOek1vZGFsUmVmIH0gZnJvbSAnbmctem9ycm8tYW50ZCc7XHJcbmltcG9ydCB7IFNGQ29tcG9uZW50LCBTRlNjaGVtYSwgU0ZVSVNjaGVtYSB9IGZyb20gJ0BkZWxvbi9mb3JtJztcclxuaW1wb3J0IHsgRGljdFNlcnZpY2UsIERhdGFTb3VyY2VTZXJ2aWNlIH0gZnJvbSBcIkBlY2lwL3NlcnZpY2VcIjtcclxuaW1wb3J0IHttYXB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYXV0aC1kcy1lZGl0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHNlZGl0LmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhEYXRhU291cmNlRWRpdENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdHtcclxuXHJcbiAgQFZpZXdDaGlsZCgnc2YnKVxyXG4gIHNmOlNGQ29tcG9uZW50O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHJlY29yZDogYW55IDtcclxuXHJcbiAgQElucHV0KClcclxuICBpc05ldzogYm9vbGVhbiA7XHJcblxyXG4gIHRpdGxlPSfnvJbovpHmlbDmja7mupAnO1xyXG5cclxuICBzY2hlbWE6IFNGU2NoZW1hID0ge1xyXG4gICAgcHJvcGVydGllczoge1xyXG4gICAgICBkc05hbWU6IHtcclxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgICB0aXRsZTogJ+aVsOaNrua6kOWQjeensCcsXHJcbiAgICAgICAgdWk6e1xyXG4gICAgICAgICAgLy/lvILmraXpqozor4HvvJrliKTmlq3mmK/lkKblt7Lnu4/lrZjlnKjnm7jlkIzmlbDmja7mupDlkI3np7DnmoTorrDlvZXvvIxcclxuICAgICAgICAgIC8v5aaC5p6c5piv5L+u5pS55pWw5o2u5rqQ77yM5ZKM6Ieq5bex5Y6f5pys55qE5pWw5o2u5rqQ5ZCN56ew55u45ZCM5YiZ5b+955WlXHJcbiAgICAgICAgICB2YWxpZGF0b3I6ICh2YWx1ZTogYW55KSA9PiB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLmV4aXN0c0RzTmFtZSh2YWx1ZSlcclxuICAgICAgICAgICAgLnBpcGUoIG1hcChyZXMgPT4gKHJlcyAmJiAodGhpcy5pc05ldyB8fCB0aGlzLnJlY29yZC5kc05hbWUhPXZhbHVlKSkgPyBbIHsga2V5d29yZDogJ3JlcXVpcmVkJywgbWVzc2FnZTogJ+aVsOaNrua6kOWQjeW3suWtmOWcqCd9IF0gOiBbXSkpXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBkYlR5cGU6IHtcclxuICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxyXG4gICAgICAgIHRpdGxlOiAn5pWw5o2u5bqT57G75Z6LJyxcclxuICAgICAgICBkZWZhdWx0OiAnJyxcclxuICAgICAgICB1aToge1xyXG4gICAgICAgICAgd2lkZ2V0OiAnc2VsZWN0J1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZGJOYW1lOiB7XHJcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgICAgdGl0bGU6ICfmlbDmja7lupPlkI0nXHJcbiAgICAgIH0sXHJcbiAgICAgIHVybDoge1xyXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICAgIHRpdGxlOiAn5Y2P6K6uKFVSTOWJjee8gCknXHJcbiAgICAgIH0sXHJcbiAgICAgIGlwOiB7XHJcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgICAgdGl0bGU6ICfkuLvmnLooSVDmiJbln5/lkI0pJ1xyXG4gICAgICB9LFxyXG4gICAgICBwb3J0OiB7XHJcbiAgICAgICAgdHlwZTogJ251bWJlcicsXHJcbiAgICAgICAgdGl0bGU6ICfnq6/lj6Plj7cnLFxyXG4gICAgICAgIHVpOntcclxuICAgICAgICAgIHdpZGdldDogJ3N0cmluZycsXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB1c2VybmFtZToge1xyXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICAgIHRpdGxlOiAn55So5oi35ZCNJ1xyXG4gICAgICB9LFxyXG4gICAgICBwYXNzd29yZDoge1xyXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICAgIHRpdGxlOiAn5a+G56CBJyxcclxuICAgICAgICB1aTp7XHJcbiAgICAgICAgICB3aWRnZXQ6ICdzdHJpbmcnLFxyXG4gICAgICAgICAgdHlwZTogJ3Bhc3N3b3JkJ1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICByZXF1aXJlZDogWydkc05hbWUnLCdkYlR5cGUnLCdkYk5hbWUnLCd1cmwnLCdpcCcsJ3BvcnQnLCd1c2VybmFtZScsJ3Bhc3N3b3JkJ10sXHJcblxyXG4gIH07XHJcblxyXG4gIHVpOiBTRlVJU2NoZW1hID0ge1xyXG4gICAgJyonOiB7XHJcbiAgICAgIGdyaWQ6IHsgc3BhbjogMTgsIG9mZnNldDogMiB9LFxyXG4gICAgfSxcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbW9kYWw6IE56TW9kYWxSZWYsXHJcbiAgICBwdWJsaWMgZGF0YVNvdXJjZVNlcnZpY2U6RGF0YVNvdXJjZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOk56TWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpY3RTZXJ2aWNlOkRpY3RTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmKHRoaXMuaXNOZXc9PT10cnVlKXtcclxuICAgICAgdGhpcy50aXRsZT0n5paw5bu65pWw5o2u5rqQJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIC8v5byC5q2l5riy5p+T5LiL5ouJ5qGGXHJcbiAgICB0aGlzLmRpY3RTZXJ2aWNlLmdldFR5cGVMaXN0KCdkYlR5cGUnKS5zdWJzY3JpYmUoKHJlczp7dmFsdWUsIGxhYmVsfVtdKT0+e1xyXG4gICAgICB0aGlzLnNmLnNjaGVtYS5wcm9wZXJ0aWVzLmRiVHlwZS5lbnVtID0gW3t2YWx1ZTonJywgbGFiZWw6J+ivt+mAieaLqSd9XS5jb25jYXQocmVzKTtcclxuICAgICAgdGhpcy5zZi5yZWZyZXNoU2NoZW1hKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBzdWJtaXQoZGF0YVNvdXJjZTphbnkpe1xyXG4gICAgaWYodGhpcy5pc05ldz09PXRydWUpe1xyXG4gICAgICB0aGlzLmNyZWF0ZShkYXRhU291cmNlKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLnVwZGF0ZShkYXRhU291cmNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyZWF0ZShkYXRhU291cmNlOiBhbnkpIHtcclxuICAgIHRoaXMuZGF0YVNvdXJjZVNlcnZpY2UucG9zdChkYXRhU291cmNlKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLm1vZGFsLmNsb3NlKHRydWUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGUoZGF0YVNvdXJjZTogYW55KSB7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLnB1dCh0aGlzLnJlY29yZC5pZCwgZGF0YVNvdXJjZSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5tb2RhbC5jbG9zZSh0cnVlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdGVzdENvbm5lY3Rpb24oZGF0YVNvdXJjZTogYW55KXtcclxuICAgIHRoaXMuZGF0YVNvdXJjZVNlcnZpY2UudGVzdENvbm5lY3Rpb24oZGF0YVNvdXJjZSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIGlmKHJlcy5ib2R5PT09dHJ1ZSl7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5zdWNjZXNzKFwi6L+e5o6l5oiQ5YqfXCIpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVycm9yKFwi6L+e5o6l5aSx6LSlXCIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5tb2RhbC5kZXN0cm95KCk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=