import { construct, destruct } from "@aximario/json-tree"; import _ from "lodash"; import { TCore } from "../index.ts"; export interface IGblbResponse { whoBuild: number; userIndx: number; gblbIndx: number; parentID: number; hashCode: number; dataLevl: number; dataFrom: number; dataType: number; kjndKJQJ: number; isLasted: number; dataStat: number; dataOrdr: number; dataHide: number; dataDate: number; dataTime: number; dataGUID: string; mastName: string; mastGUID: string; createBy: string; createAt: number; updateBy: string; updateAt: number; deleteBy: string; deleteAt: number; queuesBy: number; sourceND: number; entityID: string; /** 国标编码 */ gblbCode: string; /** 国标名称 */ gblbName: string; /** 国标编码链 */ codeFull: string; /** 国标名称链 */ nameFull: string; /** 国标备注 */ gblbMemo: string; /** 计量单位.标识 */ cardJldw: number; /** 计量单位.文本 */ cardJldwText: string; /** 表单命名名称 */ wtuiFormName: string; children: IGblbResponse[]; hasChild: boolean; /**附件 */ listPath: TCore.IPathResponse[]; } export class TGblbResponse implements IGblbResponse { whoBuild: number = 0; userIndx: number = 0; gblbIndx: number = 0; parentID: number = 0; hashCode: number = 0; dataLevl: number = 0; dataFrom: number = 0; dataType: number = 0; kjndKJQJ: number = 0; isLasted: number = 0; dataStat: number = 0; dataOrdr: number = 0; dataHide: number = 0; dataDate: number = 0; dataTime: number = 0; dataGUID: string = ""; mastName: string = ""; mastGUID: string = ""; createBy: string = ""; createAt: number = 0; updateBy: string = ""; updateAt: number = 0; deleteBy: string = ""; deleteAt: number = 0; queuesBy: number = 0; sourceND: number = 0; entityID: string = ""; gblbCode: string = ""; gblbName: string = ""; codeFull: string = ""; nameFull: string = ""; gblbMemo: string = ""; cardJldw: number = 0; cardJldwText: string = ""; wtuiFormName: string = ""; children: IGblbResponse[] = []; hasChild: boolean = false; /**附件 */ listPath: TCore.IPathResponse[] = []; constructor(form?: any) { if (form) { _.merge(this, _.pick(form, Object.keys(this))); } } // static toTree(listUnit: IGblbResponse[]) { // return construct(listUnit, { id: "gblbIndx", pid: "parentID", children: "children" }) as IGblbResponse[]; // } static toTree(listUnit: IGblbResponse[]) { return construct(listUnit, { id: "gblbIndx", pid: "parentID", children: "children" }) as IGblbResponse[]; } static toList(treeUnit: IGblbResponse[]) { return destruct(treeUnit, { id: "gblbIndx", pid: "parentID", children: "children" }) as IGblbResponse[]; } static toTravel(gblb: IGblbResponse): TCore.ISysTravelResponse { const travel = new TCore.TSysTravelResponse(); travel.whoBuild = gblb.whoBuild; travel.flowMain = 0; travel.flowNode = 0; travel.billUUID = gblb.entityID; travel.billMain = gblb.gblbIndx; travel.billCode = gblb.gblbCode; travel.mastName = gblb.mastName; travel.createBy = gblb.createBy; return travel; } static toTravelData(card?: IGblbResponse | IGblbResponse[]): TCore.ISysTravelResponse[] { if (_.isNil(card)) { return []; } if (_.isArray(card)) { return card.map((u) => { return this.toTravel(u); }); } return [this.toTravel(card)]; } }