import { IControl, IDataSource, SourceCode, ITableDefinition, ComponentControl, ControlType, ITableQueryPager } from '@datahu/core' import {I18n} from '../i18n' import {BaseDataSource, BaseDataSourceOption} from '../base' import {OracleHelper} from './OracleHelper' export class OracleDataSourceOption extends BaseDataSourceOption { static controls: Array = [] @ComponentControl({ type: ControlType.text, title: '服务器', required: true }) host: string = 'localhost' @ComponentControl({ type: ControlType.number, title: '端口', required: true }) port: number = 1521 @ComponentControl({ type: ControlType.text, title: '用户名', required: true }) username: string = '' @ComponentControl({ type: ControlType.password, title: '密码', required: true }) password: string = '' @ComponentControl({ type: ControlType.text, title: '默认数据库', required: true }) database: string = '' @ComponentControl({ type: ControlType.text, title: 'Oracle Client 路径', description: '如果添加了环境变量,该路径可以为空' }) oracleClient: string = '' } export class OracleDataSource extends BaseDataSource { helper?: OracleHelper constructor(language: string, config?: OracleDataSourceOption) { super(language, config) this.title = 'Oracle' this.description = 'Oracle数据库' if (config) { this.helper = new OracleHelper(config) } } // 数据源默认配置值 config: OracleDataSourceOption = new OracleDataSourceOption() icon: string = '' sourceCode: SourceCode = SourceCode.Javascript supportPager: boolean = true getTables(pager: ITableQueryPager | null): Promise { return this.helper!.getTables(pager!) } getData(tables: Array): Promise> { return this.helper!.getData(tables) } }