project.ts 4.9 KB

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