UNPKG

@baosight/ei

Version:

Baosight xinrong ei Framework

336 lines (335 loc) 11.6 kB
import { DataType, IServiceTransformer, ValueType } from './type'; import { EITools } from './ei-tools'; export declare namespace EI { /** * ArrayObject结构的Block */ export class EiBlock { constructor(blockName?: string); name: string; data: { [key: string]: ValueType; }[]; columns: IColumnJson[]; extAttr: Map<string, any>; /** * 新增数据,可以新增一条或多条数据,第二个参数为true则生成元数据 * @param data 新增的数据,可以是键值对对象也可以是键值对对象数组 * @param autoAddColumn 是否添加元数据信息 */ pushData(data: { [key: string]: ValueType; } | { [key: string]: ValueType; }[], autoAddColumn?: boolean): void; /** * 获取元数据信息 * @returns 元数据数组 */ getBlockMeta(): IColumnJson[]; /** * 设置元数据信息 * @param meta 元数据信息 */ setBlockMeta(meta: IColumnJson[]): void; /** * 根据列名或取列对象 * @param columnName 列名 * @returns EiColumn | undefined */ getColumn(columnName: string): EiColumn | undefined; /** * 删除某个字段 * @param columnName * @returns EiBlock */ removeColumn(columnName: string): EiBlock; /** * 检测当前元数据中是否包含指定字段名的元数据 * @param columnName * @returns boolean */ containsColumn(columnName: string): boolean; /** * 添加一列 * @param newColumn 字段名 * @param defaultValue 默认值 可选参数,不传默认为字符串'' * @param dataType 字段类型,可选参数,不传默认为字符串类型,可选以下类型 * C: string类型 * N: 数值类型,若带精度的数值最好使用字符串类型,否则可能导致精度丢失 * D: 日期类型 * B: boolean 类型 * X: ArrayBuffer */ addColumn(column: EiColumn, defaultValue?: ValueType): void; addColumn(newColumn: string, defaultValue?: ValueType, dataType?: DataType): void; /** * 添加多列 * @param columnArray EiColumn[] | string[] */ addColumns(...columnNames: string[]): void; addColumns(columnArray: EiColumn[]): void; /** * 重命名字段名 * @param oldColumnName 旧字段名 * @param newColumnName 新字段名 * @returns EiBlock */ renameColumn(oldColumnName: string, newColumnName: string): EiBlock; /** * 复制表 * @param blockName 可选参数,复制出来的表名,不设置为`原表名 copy` * @returns EiBlock */ copy(blockName?: string): EiBlock; /** * 复制表 * @param {string} blockName 复制出来的表名 * @param {boolean} excludeRows 是否需要保留数据行 * @returns EiBlock */ clone(blockName: string, excludeRows: boolean): EiBlock; /** * 给block所在列添加行数据 * @param {Object} rowData 行数据 * @returns EiBlock */ addRow(rowData: { [key: string]: ValueType; }): EiBlock; /** * 删除block指定行数据,返回被删除的数据 * @param {number} index 行数据 * @returns Object */ deleteRow(index: number): { [key: string]: ValueType; }; /** * 添加block指定行数据,返回Eiblock * @param {number} index 行数据 * @returns Object */ insertRow(index: number, rowData: { [key: string]: ValueType; }): EiBlock; /** * 将EiBlock转换为JSON格式 * @param dataTransformer * @returns EiBlockJson */ toJSON(dataTransformer?: IServiceTransformer): EITools.__BlockJson__; /** * 解析 JSON 字符串或对象为 EiBlock 对象 * @param input JSON 字符串或对象 * @param dataTransformer 数据转换器 * @returns EiBlock */ static parseJSON(input: string | Record<string, any>, dataTransformer?: IServiceTransformer): EiBlock; /** * 通过列英文名数组['field1', 'field2'],或者[{field1: '', field2: ''},{},{}]形式的数组创建EiBlock * @param blockId 数据块的id * @param data 列名数组或者JSON形式的数据行 * @return {EiBlock} */ static build(blockId: string, data: string[] | { [key: string]: ValueType; }[]): EiBlock; /** * 通过列英文名数组,列中文名数组,创建EiBlock * * @param blockId 数据块的id * @param enames 列英文名数组 * @param cnames 列中文名数组 * @return {EiBlock} */ static buildByNames(blockId: string, enames: string[], cnames: string[]): EiBlock; /** * 通过[{field: '', title: ''}, ...] 数组,创建EiBlock * * @param blockId 数据块的id * @param columns kendoGrid的columns数组 * @return {EiBlock} */ static buildByColumns(blockId: string, columns: { field: string; title: string; [key: string]: ValueType; }[]): EiBlock; } /** * ArrayObject 结构的EIInfo */ export class EIInfo { constructor(); context: EITools.IContent; sys: EITools.SysInfo; blocks: { [key: string]: EiBlock; }; name: string; descName: string; msg: string; msgKey: string; detailMsg: string; status: number; extAttr: { [key: string]: any; }; edInfo?: EDInfo; /** * 取得EiInfo的名称 * @return {String} EiInfo名称 */ getName(): string; /** * 设置EiInfo的名称 * @param {String} name EiInfo名称 */ setName(name: string): void; /** * 给EI添加EDInfo属性 * @param ed */ setED(ed: EDInfo): void; /** * 更改国际化语言 * @param culture 语言:zh_Hans,zh_Hant,ar,en */ setCulture(culture: string): void; /** * 更改账套 * @param companyCode 账套英文名 */ setCompanyCode(companyCode: string): void; /** * 更改账套中文名 * @param companyName 账套中文名 */ setCompanyName(companyName: string): void; /** * 更改s结构体中的账套或语言 * @param context {company_code: string;company_name:string;culture: string} */ setContext(context: { company_code?: string; company_name?: string; culture?: string; }): void; /** * 给EiInfo添加EiBlock块 * @param dataBlock EiBlock对象 * @param blockName 可选参数block名,不传则以block.name作为eiinfo上blocks的键名 * @returns */ addBlock(eiBlock: EiBlock, blockName?: string): EiBlock; /** * 检查eiinfo中是否存在block块 * @param blockName block块名 * @returns boolean */ contains(blockName: string): boolean; /** * 根据block块名删除block块 * @param blockName block块名 * @returns EiBlock */ remove(blockName: string): EiBlock; /** * 重命名block名 * @param oldBlockInfo 旧block块名或索引位置 * @param newBlockName 新block块名 * @returns EiBlock */ renameBlock(oldBlockInfo: string | number, newBlockName: string): EiBlock; /** * 根据block块名或索引号获取block块 * @param blockInfo block名或索引号 * @returns EiBlock */ getBlock(blockInfo: string | number): EiBlock; /** * 克隆eiinfo * @returns EIInfo */ clone(): EIInfo; /** * 以三段式的方式从EiInfo中获取某字段的值,无法获取值是返回null * @param {String} str 三段式blockName-RowNum-ColName 如'result-0-siteArticleButton' */ get(str: string): any; /** * 根据key名,按照块名、行号、列名规则,以'-'分隔,设置其值. */ set(...argumentArr: ValueType[]): void; /** * 转换EIInfo 为后台数据传输的json结构 * @param dataTransformer IServiceTransformer 转换配置 * @returns EIinfo_Json */ toJSON(dataTransformer?: IServiceTransformer): EITools.__EIInfoJson__; /** * 解析 JSON 字符串或对象为 EIInfo 对象 * @param input JSON 字符串或对象 * @param dataTransformer 数据转换器 * @returns EIInfo */ static parseJSON(input: string | Record<string, any>, dataTransformer?: IServiceTransformer): EIInfo; /** * 将List<Object> 格式的数据转换为 EIInfo 对象 * @param input List<Object> 格式的数据 * @returns EIInfo */ static fromMap(input: Record<string, Record<string, any>[]>): EIInfo; /** * 将EIInfo对象转换为Map<String, List<Object>>格式的数据 * @param eiInfo EIInfo对象 * @returns Map<String, List<Object>> * */ static toMap(eiInfo: EIInfo): Record<string, Record<string, any>[]>; } export class EDInfo implements EITools.__IEDInfo__ { constructor(); fblk_name: EITools.Tuple<string, 63>; func_name: EITools.Tuple<string, 63>; pk_name: EITools.Tuple<string, 3>; pk_val: EITools.Tuple<string, 3>; } interface IColumnJson { pos: number; name: string; type: DataType; descName: string; } interface IColumnExt { [key: string]: any; regex?: string; formatter?: string; editor?: string; minLength?: number; maxLength?: number; primaryKey?: boolean; nullable?: boolean; visible?: string; readonly?: string; displayType?: string; errorPrompt?: string; width?: number; height?: number; align?: string; blockName?: string; sourceName?: string; labelProperty?: string; valueProperty?: string; } export class EiColumn implements IColumnJson, IColumnExt { constructor(force?: boolean); [key: string]: any; pos: number; name: string; type: DataType; descName: string; } export {}; }