choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
133 lines (132 loc) • 5.21 kB
TypeScript
import { IComputedValue, ObservableMap } from 'mobx';
import DataSet, { RecordValidationErrors } from './DataSet';
import Field, { FieldProps, Fields } from './Field';
import DataSetSnapshot from './DataSetSnapshot';
import { RecordStatus } from './enum';
import ValidationResult from '../validator/ValidationResult';
import { AttachmentCache } from '../stores/AttachmentStore';
export declare const EXPANDED_KEY = "__EXPANDED_KEY__";
export interface RecordBaseProps {
disabled?: boolean | undefined;
selectable?: boolean | undefined;
defaultSelected?: boolean | undefined;
defaultExpanded?: boolean | undefined;
}
export declare type RecordDynamicProps = {
[P in keyof RecordBaseProps]: (record: Record) => RecordBaseProps[P];
};
export interface RecordProps extends RecordBaseProps {
dynamicProps?: Partial<RecordDynamicProps>;
}
export default class Record {
id: number;
dataSet: DataSet;
get fields(): Fields;
ownerFields: Fields;
tempFields?: Map<string, Field>;
memo?: object;
private prepareForReport?;
dataSetSnapshot?: {
[key: string]: DataSetSnapshot;
} | undefined;
cascadeRecordsMap?: {
[key: string]: Record[];
} | undefined;
cascading?: {
[key: string]: boolean;
} | undefined;
validating?: boolean | undefined;
data: object;
dirtyData?: ObservableMap<string, any> | undefined;
validationErrors?: ObservableMap<string, ValidationResult[]>;
lookupTokens?: ObservableMap<string, string | undefined> | undefined;
attachmentCaches?: ObservableMap<string, AttachmentCache>;
computedFieldProps?: Map<string | symbol, IComputedValue<any>>;
lastDynamicFieldProps?: Map<string, {
[key: string]: any;
} | undefined>;
get pristineData(): object;
set pristineData(data: object);
status: RecordStatus;
get selectedTimestamp(): number | undefined;
get selectable(): boolean;
set selectable(selectable: boolean);
get disabled(): boolean;
set disabled(selectable: boolean);
get isDataSetInAllPageSelection(): boolean;
get isSelected(): boolean;
set isSelected(isSelected: boolean);
isCurrent?: boolean;
isCached?: boolean;
editing?: boolean;
pending?: boolean;
childrenLoaded?: boolean;
state?: ObservableMap<string, any> | undefined;
get key(): string | number;
get index(): number;
get indexInParent(): number;
get isRemoved(): boolean;
get isNew(): boolean;
get isSelectionIndeterminate(): boolean;
get isIndeterminate(): boolean;
get isExpanded(): boolean;
set isExpanded(expand: boolean);
get previousRecord(): Record | undefined;
get nextRecord(): Record | undefined;
get records(): Record[];
children?: Record[] | undefined;
parent?: Record | undefined;
get parents(): Record[];
get path(): Record[];
get level(): number;
get dirty(): boolean;
get cascadeParent(): Record | undefined;
constructor(data?: object, dataSet?: DataSet, status?: RecordStatus);
processTreeLevel(props: {
dataSet: DataSet;
value: any;
fieldName: string;
}): void;
/**
* 转换成普通数据
* 一般用于父级联数据源中的json类型字段
* 禁止通过此方法获取某一个或几个字段值
*/
toData(needIgnore?: boolean, noCascade?: boolean, isCascadeSelect?: boolean, all?: boolean): any;
/**
* 转换成用于提交的数据
*/
toJSONData(noCascade?: boolean, isCascadeSelect?: boolean): any;
validate(all?: boolean, noCascade?: boolean): Promise<boolean>;
reportValidity(result: RecordValidationErrors, fromField?: boolean): void;
getValidationErrors(): RecordValidationErrors[];
addField(name: string, fieldProps?: FieldProps): Field;
getField(fieldName?: string): Field | undefined;
getCascadeRecordsIncludeDelete(fieldName?: string): Record[] | undefined;
getCascadeRecords(fieldName?: string): Record[] | undefined;
getCascadeSelectedRecordsIncludeDelete(fieldName?: string): Record[] | undefined;
getCascadeSelectedRecords(fieldName?: string): Record[] | undefined;
get(fieldName?: string | string[]): any;
set(item: string | object, value?: any): Record;
getPristineValue(fieldName?: string): any;
init(item: string | object, value?: any): Record;
clone(): Record;
ready(): Promise<any>;
tls(name?: string): Promise<void>;
reset(): Record;
save(): Record;
restore(): Record;
clear(): Record;
commit(data?: object, dataSet?: DataSet): Record;
setState(item: string | object, value?: any): this;
getState(key: string): any;
treeReduce<U>(fn: (previousValue: U, record: Record) => U, initialValue: U): U;
private commitTls;
processFieldValue(fieldName: string, field: Field, fields: Fields, newData: object, data: object, needMerge?: boolean): void;
setValidationError(name: string, result: ValidationResult[]): void;
getValidationError(name: string): ValidationResult[] | undefined;
clearValidationError(name: any): boolean | undefined;
private processData;
private normalizeData;
private normalizeCascadeData;
}