@baosight/ei
Version:
Baosight xinrong ei Framework
336 lines (335 loc) • 11.6 kB
TypeScript
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 {};
}