project.ts 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. import { ITreeScm, IFileRef, DeleteEnum } from './base';
  2. import { ICalcOption, ITenderSetting } from './calculation';
  3. export enum ProjectType {
  4. FOLDER = 1,
  5. CONSTRUCTION, // 建设项目
  6. SINGLE, // 单项工程
  7. UNIT, // 单位工程
  8. }
  9. export interface IGLJCol {
  10. showAdjustPrice?: boolean;
  11. }
  12. // 小数位数
  13. export interface IDecimal {
  14. bills: { unitFee: number; totalFee: number };
  15. ration: { quantity: number; unitFee: number; totalFee: number };
  16. glj: { quantity: number; unitPriceHasMix: number; unitFee: number };
  17. feeRate: number;
  18. quantityDetail: number;
  19. material: number; // 三材系数
  20. process: number;
  21. }
  22. // 工程量精度
  23. export interface IBillsQuantityDecimal {
  24. unit: string;
  25. decimal: number;
  26. }
  27. // 呈现选项
  28. export interface IDisplaySetting {
  29. billsAutoHeight: boolean;
  30. rationAutoHeight: boolean;
  31. disPlayMainMaterial: boolean;
  32. }
  33. // 累进区间
  34. export interface IProgression {
  35. interval: string; // 区间字符 eg: '(0,100]'
  36. feeRate: boolean;
  37. }
  38. export interface IProgressiveInterval {
  39. name: string;
  40. progression: IProgression[];
  41. }
  42. // 超高降效
  43. export interface IOverHeight {
  44. name: string;
  45. code?: string;
  46. unit?: string;
  47. labourRate?: string;
  48. machineRate?: string;
  49. labourMachineRate?: string;
  50. benchmark?: string;
  51. extra?: string;
  52. limit?: string;
  53. }
  54. export enum OverHeightOption {
  55. SEPARATION = 1, // 对应清单或分部下(默认)
  56. MEASURE, // 指定措施清单011704001
  57. SPECIFIC, // 指定具体位置,显示分部分项以及措施项目的树结构显示叶子清单(分项)供勾选
  58. }
  59. // 承包人材料调整类型
  60. export enum GLJAdjustType {
  61. PRICE_INFO = 'priceInfo', // 造价信息差额调整法
  62. PRICE_COE = 'priceCoe', // 价格指数调整法
  63. }
  64. // 计税方式
  65. export enum TaxType {
  66. GENERAL = 1,
  67. SIMPLE,
  68. }
  69. // 文件类型
  70. export enum FileType {
  71. SUBMISSION = 1, // 投标
  72. INVITATION, // 招标
  73. CONTROL, // 控制价
  74. }
  75. export enum FileTypeName {
  76. SUBMISSION = '投标',
  77. INVITATION = '招标',
  78. CONTROL = '控制价',
  79. }
  80. export const FileTypeMap = {
  81. [FileType.SUBMISSION]: FileTypeName.SUBMISSION,
  82. [FileType.INVITATION]: FileTypeName.SUBMISSION,
  83. [FileType.CONTROL]: FileTypeName.CONTROL,
  84. };
  85. // 工程特征、基本信息
  86. export interface IInfoItem {
  87. key: string;
  88. dispName: string;
  89. value?: string;
  90. required?: string;
  91. readonly?: string;
  92. options?: string;
  93. cellType?: string;
  94. fileKind?: FileTypeName;
  95. items?: IInfoItem[];
  96. }
  97. // 项目属性
  98. export interface IProperty {
  99. rootProjectID?: string; // 建设项目ID
  100. valuationID?: string; // 计价规则
  101. engineeringID?: string; // 工程专业
  102. fileType?: FileType; // 文件类型
  103. taxType?: TaxType; // 计税方式
  104. rationFeeType?: number; // 定额取费专业
  105. unitFeeType?: number; // 单位工程取费专业
  106. calcProgram?: IFileRef; // 计算程序
  107. colLibID?: string; // 列设置
  108. templateLibID?: string; // 清单模板
  109. unitPriceFile?: IFileRef; // 单价文件
  110. feeFile?: IFileRef; // 费率文件
  111. region?: string;
  112. isInstall?: boolean; // 是否是安装工程
  113. isItemIncrease?: boolean; // 是否是子目增加
  114. isAreaIncrease?: boolean; // 是否是面积增加
  115. featureLibID?: string; // 工程特征
  116. indexName?: string; // 指标名称
  117. engineerInfoLibID?: string; // 工程信息指标
  118. engineerFeatureLibID?: string; // 工程特征指标
  119. economicLibID?: string; // 主要经济指标
  120. mainQuantityLibID?: string; // 主要工程量指标
  121. materialLibID?: string; // 主要工料指标
  122. progressiveLibID?: string; // 累进区间库
  123. lockBills?: boolean; // 锁定清单
  124. decimal?: IDecimal; // 小数位数
  125. billsQuantityDecimal: IBillsQuantityDecimal[]; // 清单工程量精度
  126. displaySetting?: IDisplaySetting; // 呈现选项
  127. billsCalcMode?: number; // 清单计费取费方式
  128. zanguCalcMode?: number; // 暂估合价计算方式
  129. calcOption?: ICalcOption; // 计算选项
  130. tenderSetting?: ITenderSetting; // 调价设置
  131. overHeight?: IOverHeight[]; // 超高降效数据
  132. overHeightOption?: OverHeightOption; // 超高降效选项
  133. basicInfo?: IInfoItem[]; // 基本信息
  134. feature?: IInfoItem[]; // 工程特征
  135. gljAdjustType?: GLJAdjustType; // 承包人材料调整类型
  136. cptIllustration?: string; // 编制说明
  137. }
  138. export interface IMainTreeCol {
  139. cols: Array<any>;
  140. headRowHeight: Array<number>;
  141. treeCol?: number;
  142. headRows?: number;
  143. emptyRows?: number;
  144. }
  145. export enum ImportType {
  146. NONE,
  147. YBP,
  148. INTERFACE,
  149. }
  150. export interface IProject extends ITreeScm {
  151. type: ProjectType;
  152. compilationID: string;
  153. userID: string;
  154. name: string;
  155. code?: string;
  156. createDate: number;
  157. property?: IProperty;
  158. mainTreeCol?: IMainTreeCol;
  159. gljCol?: IGLJCol;
  160. changeMark?: string;
  161. remark?: string;
  162. fileVer?: string;
  163. lastFileVer?: string;
  164. imported?: ImportType;
  165. deleteType?: DeleteEnum;
  166. deleteDate?: number;
  167. deleteBy?: string;
  168. }