import { ITreeScm, IFileRef, DeleteEnum } from './base'; import { ICalcOption, ITenderSetting } from './calculation'; export enum ProjectType { FOLDER = 1, CONSTRUCTION, // 建设项目 SINGLE, // 单项工程 UNIT, // 单位工程 } export interface IGLJCol { showAdjustPrice?: boolean; } // 小数位数 export interface IDecimal { bills: { unitFee: number; totalFee: number }; ration: { quantity: number; unitFee: number; totalFee: number }; glj: { quantity: number; unitPriceHasMix: number; unitFee: number }; feeRate: number; quantityDetail: number; material: number; // 三材系数 process: number; } // 工程量精度 export interface IBillsQuantityDecimal { unit: string; decimal: number; } // 呈现选项 export interface IDisplaySetting { billsAutoHeight: boolean; rationAutoHeight: boolean; disPlayMainMaterial: boolean; } // 累进区间 export interface IProgression { interval: string; // 区间字符 eg: '(0,100]' feeRate: boolean; } export interface IProgressiveInterval { name: string; progression: IProgression[]; } // 超高降效 export interface IOverHeight { name: string; code?: string; unit?: string; labourRate?: string; machineRate?: string; labourMachineRate?: string; benchmark?: string; extra?: string; limit?: string; } export enum OverHeightOption { SEPARATION = 1, // 对应清单或分部下(默认) MEASURE, // 指定措施清单011704001 SPECIFIC, // 指定具体位置,显示分部分项以及措施项目的树结构显示叶子清单(分项)供勾选 } // 承包人材料调整类型 export enum GLJAdjustType { PRICE_INFO = 'priceInfo', // 造价信息差额调整法 PRICE_COE = 'priceCoe', // 价格指数调整法 } // 计税方式 export enum TaxType { GENERAL = 1, SIMPLE, } // 文件类型 export enum FileType { SUBMISSION = 1, // 投标 INVITATION, // 招标 CONTROL, // 控制价 } export enum FileTypeName { SUBMISSION = '投标', INVITATION = '招标', CONTROL = '控制价', } export const FileTypeMap = { [FileType.SUBMISSION]: FileTypeName.SUBMISSION, [FileType.INVITATION]: FileTypeName.SUBMISSION, [FileType.CONTROL]: FileTypeName.CONTROL, }; // 工程特征、基本信息 export interface IInfoItem { key: string; dispName: string; value?: string; required?: string; readonly?: string; options?: string; cellType?: string; fileKind?: FileTypeName; items?: IInfoItem[]; } // 项目属性 export interface IProperty { rootProjectID?: string; // 建设项目ID valuationID?: string; // 计价规则 engineeringID?: string; // 工程专业 fileType?: FileType; // 文件类型 taxType?: TaxType; // 计税方式 rationFeeType?: number; // 定额取费专业 unitFeeType?: number; // 单位工程取费专业 calcProgram?: IFileRef; // 计算程序 colLibID?: string; // 列设置 templateLibID?: string; // 清单模板 unitPriceFile?: IFileRef; // 单价文件 feeFile?: IFileRef; // 费率文件 region?: string; isInstall?: boolean; // 是否是安装工程 isItemIncrease?: boolean; // 是否是子目增加 isAreaIncrease?: boolean; // 是否是面积增加 featureLibID?: string; // 工程特征 indexName?: string; // 指标名称 engineerInfoLibID?: string; // 工程信息指标 engineerFeatureLibID?: string; // 工程特征指标 economicLibID?: string; // 主要经济指标 mainQuantityLibID?: string; // 主要工程量指标 materialLibID?: string; // 主要工料指标 progressiveLibID?: string; // 累进区间库 lockBills?: boolean; // 锁定清单 decimal?: IDecimal; // 小数位数 billsQuantityDecimal: IBillsQuantityDecimal[]; // 清单工程量精度 displaySetting?: IDisplaySetting; // 呈现选项 billsCalcMode?: number; // 清单计费取费方式 zanguCalcMode?: number; // 暂估合价计算方式 calcOption?: ICalcOption; // 计算选项 tenderSetting?: ITenderSetting; // 调价设置 overHeight?: IOverHeight[]; // 超高降效数据 overHeightOption?: OverHeightOption; // 超高降效选项 basicInfo?: IInfoItem[]; // 基本信息 feature?: IInfoItem[]; // 工程特征 gljAdjustType?: GLJAdjustType; // 承包人材料调整类型 cptIllustration?: string; // 编制说明 } export interface IMainTreeCol { cols: Array; headRowHeight: Array; treeCol?: number; headRows?: number; emptyRows?: number; } export enum ImportType { NONE, YBP, INTERFACE, } export interface IProject extends ITreeScm { type: ProjectType; compilationID: string; userID: string; name: string; code?: string; createDate: number; property?: IProperty; mainTreeCol?: IMainTreeCol; gljCol?: IGLJCol; changeMark?: string; remark?: string; fileVer?: string; lastFileVer?: string; imported?: ImportType; deleteType?: DeleteEnum; deleteDate?: number; deleteBy?: string; }