armisa-models
Version:
models of armisa!
77 lines (71 loc) • 2.16 kB
text/typescript
import { ISelfCheckTree } from "../../SelfModels/SelfCheckTree";
export interface ISpecifierCheckTreeView {
id: number;
isFromChild: boolean;
isFromParent: boolean;
code: IStructrulCodeTreeViewJson;
multiCode?: boolean;
}
export interface IStructrulCodeFullName {
id: number;
code: string;
name: string;
}
export interface IStructrulCodeTreeViewJson {
isFromChild?: boolean;
id: number;
parentId: number;
code: string;
name: string;
firstName?: string;
isExpanded: boolean;
isLoading: boolean;
children: IStructrulCodeTreeViewJson[] | null;
childCount: number;
fullName?: IStructrulCodeFullName[];
check: ISelfCheckTree;
}
export class StructrulCodeTreeViewCode {
static deserialize(
data: IStructrulCodeTreeViewJson,
children: IStructrulCodeTreeViewJson[] | null
): StructrulCodeTreeViewCode {
return new StructrulCodeTreeViewCode(
data.id,
data.parentId,
data.code,
data.name,
data.isExpanded,
data.isLoading,
data.childCount,
data.check ?? 0,
children,
data.fullName ?? [],
data.firstName || '',
);
}
public children: StructrulCodeTreeViewCode[] | null;
constructor(
public id: number,
public parentId: number,
public code: string,
public name: string,
public isExpanded: boolean,
public isLoading: boolean,
public childCount: number,
public check: ISelfCheckTree,
children: IStructrulCodeTreeViewJson[] | null,
public fullName?: IStructrulCodeFullName[],
public firstName?: string
) {
if (children) {
this.children = children.map(
(item: IStructrulCodeTreeViewJson): StructrulCodeTreeViewCode => {
return StructrulCodeTreeViewCode.deserialize(item, item.children);
}
);
} else {
this.children = null;
}
}
}