builditem.go 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714
  1. package pkg2024
  2. import "zhiyuan/pkg/utils"
  3. var 拆除项 = []BuildItem{
  4. {
  5. Name: "门洞加宽(墙宽300以内/拆至梁下)", Type: 拆除, Price: 30, Unit: "个",
  6. Remark: "1、含购袋及垃圾装袋费用,垃圾运至小区指定堆放地点(运距小于100米以内,超过另加10.00元/个)。",
  7. Splits: []SplitItem{
  8. {Type: 拆除, Price: 20},
  9. },
  10. },
  11. {
  12. Name: "拆除墙体(墙厚150mm以内,装袋,清运下楼)", Type: 拆除, Price: 65, Unit: "m²",
  13. Remark: "1、含购袋及垃圾装袋费用,垃圾运至小区指定堆放地点(运距小于100米以内,超过另加10.00元/M2),不含混凝土墙、梁柱拆除;2、复式楼、别墅墙体拆除第一层按65元/M2计算,第二层以上(含第二层)每上一层增加10元/M2;3、不足1平方按1平方计算。",
  14. Splits: []SplitItem{
  15. {Type: 拆除, Price: 35},
  16. },
  17. },
  18. {
  19. Name: "拆除墙体(墙厚150-280mm以内,装袋,清运下楼)", Type: 拆除, Price: 75, Unit: "m²",
  20. Remark: "1、含购袋及垃圾装袋费用,垃圾运至小区指定堆放地点(运距小于100米以内,超过另加10.00元/M2),不含混凝土墙、梁柱拆除;2、三层以上(含三层)无电梯房每上一层增加10元/M2;3、复式楼、别墅各楼层的墙体拆除费用均按其在本楼栋的实际楼层数核算;4、不足1平方按1平方计算。",
  21. Splits: []SplitItem{
  22. {Type: 拆除, Price: 45},
  23. },
  24. },
  25. {
  26. Name: "拆除墙体(墙厚280-350mm以内,装袋,清运下楼)", Type: 拆除, Price: 120, Unit: "m²",
  27. Remark: "1、含购袋及垃圾装袋费用,垃圾运至小区指定堆放地点(运距小于100米以内,超过另加10.00元/M2),不含混凝土墙、梁柱拆除;2、复式楼、别墅墙体拆除第一层按120元/M2计算,第二层以上(含第二层)每上一层增加10元/M2;3、不足1平方按1平方计算。",
  28. Splits: []SplitItem{
  29. {Type: 拆除, Price: 65},
  30. },
  31. },
  32. {
  33. Name: "拆除砖墙(有电梯)", Type: 拆除, Price: 65, Unit: "m²",
  34. Remark: "1、含购袋及垃圾装袋费用,此项费用如小区指定堆放地点运距超过100米,超过另加10.00元/M2,不含混凝土墙、梁柱拆除;2、复式楼、别墅墙体拆除第一层按65元/M2计算,第二层以上(含第二层)每上一层增加10元/M2;3、不足1平方按1平方计算。",
  35. Splits: []SplitItem{
  36. {Type: 拆除, Price: 40},
  37. },
  38. },
  39. {
  40. Name: "拆除砖墙(无电梯)", Type: 拆除, Price: 75, Unit: "m²",
  41. Remark: "1、含购袋及垃圾装袋费用,此项费用如小区指定堆放地点运距超过100米,超过另加10.00元/M2,不含混凝土墙、梁柱拆除; 2、三层以上(含三层)无电梯房每上一层增加10元/M2; 3、复式楼、别墅各楼层的墙体拆除费用均按其在本楼栋的实际楼层数核算; 4、不足1平方按1平方计算。",
  42. Splits: []SplitItem{
  43. {Type: 拆除, Price: 65},
  44. },
  45. },
  46. {
  47. Name: "拆除砖墙(无电梯三楼)增加费用", Type: 拆除, Price: 10, Unit: "m²",
  48. Remark: "1、三层以上(含三层)无电梯房每上一层增加10元/M2; 2、复式楼、别墅各楼层的墙体拆除费用均按其在本楼栋的实际楼层数核算; 3、不足1平方按1平方计算。",
  49. Splits: []SplitItem{
  50. {Type: 拆除, Price: 10},
  51. },
  52. SpecialProject: true,
  53. },
  54. {
  55. Name: "拆除砖墙(无电梯四楼)增加费用", Type: 拆除, Price: 20, Unit: "m²",
  56. Remark: "1、三层以上(含三层)无电梯房每上一层增加10元/M2; 2、复式楼、别墅各楼层的墙体拆除费用均按其在本楼栋的实际楼层数核算; 3、不足1平方按1平方计算。",
  57. Splits: []SplitItem{
  58. {Type: 拆除, Price: 20},
  59. },
  60. SpecialProject: true,
  61. },
  62. {
  63. Name: "拆除砖墙(无电梯五楼)增加费用", Type: 拆除, Price: 30, Unit: "m²",
  64. Remark: "1、三层以上(含三层)无电梯房每上一层增加10元/M2; 2、复式楼、别墅各楼层的墙体拆除费用均按其在本楼栋的实际楼层数核算; 3、不足1平方按1平方计算。",
  65. Splits: []SplitItem{
  66. {Type: 拆除, Price: 30},
  67. },
  68. SpecialProject: true,
  69. },
  70. {
  71. Name: "拆除砖墙(无电梯六楼)增加费用", Type: 拆除, Price: 40, Unit: "m²",
  72. Remark: "1、三层以上(含三层)无电梯房每上一层增加10元/M2; 2、复式楼、别墅各楼层的墙体拆除费用均按其在本楼栋的实际楼层数核算; 3、不足1平方按1平方计算。",
  73. Splits: []SplitItem{
  74. {Type: 拆除, Price: 40},
  75. },
  76. SpecialProject: true,
  77. },
  78. {
  79. Name: "拆除砖墙(无电梯七楼)增加费用", Type: 拆除, Price: 50, Unit: "m²",
  80. Remark: "1、三层以上(含三层)无电梯房每上一层增加10元/M2; 2、复式楼、别墅各楼层的墙体拆除费用均按其在本楼栋的实际楼层数核算; 3、不足1平方按1平方计算。",
  81. Splits: []SplitItem{
  82. {Type: 拆除, Price: 50},
  83. },
  84. SpecialProject: true,
  85. },
  86. {
  87. Name: "敲除半砖墙(有电梯)", Type: 拆除, Price: 120, Unit: "m²",
  88. Remark: "1、含购袋、垃圾运至小区指定堆放地点(运距小于100米以内,超过另加10.00元/M2),不含混凝土墙、梁柱拆除;2、复式楼、别墅墙体拆除第一层按120元/M2计算,第二层以上(含第二层)每上一层增加50元/M2;3、不足1平方按1平方计算。",
  89. Splits: []SplitItem{
  90. {Type: 拆除, Price: 70},
  91. },
  92. },
  93. {
  94. Name: "拆除门洞上方混凝土墙(非结构梁)", Type: 拆除, Price: 120, Unit: "个",
  95. Remark: "含人工粉补和水泥、沙。",
  96. Splits: []SplitItem{
  97. {Type: 拆除, Price: 68},
  98. },
  99. },
  100. {
  101. Name: "铲除灰砂层(保温层)", Type: 拆除, Price: 30, Unit: "m",
  102. Remark: "含购袋及垃圾装袋费用,垃圾运至小区指定堆放地点(运距小于100米以内,超过另加10.00元/M4),粉补另计(不足1平方按1平方计算)。",
  103. Splits: []SplitItem{
  104. {Type: 拆除, Price: 20},
  105. },
  106. },
  107. {
  108. Name: "铲除墙砖地面砖(拆旧)", Type: 拆除, Price: 25, Unit: "m²",
  109. Remark: "含购袋及垃圾装袋费用,垃圾运至小区指定堆放地点(运距小于100米以内,超过另加10.00元/M2)。(不足1平方按1平方计算)。",
  110. Splits: []SplitItem{
  111. {Type: 拆除, Price: 25},
  112. },
  113. SpecialProject: true,
  114. },
  115. {
  116. Name: "铲除墙面或顶面白灰层(铲大白)", Type: 拆除, Price: 30, Unit: "m²",
  117. Remark: "含人工和水泥、沙。(超过3公分,每公分加6元/M2)",
  118. Splits: []SplitItem{
  119. {Type: 拆除, Price: 20},
  120. },
  121. },
  122. {
  123. Name: "拆除砖质飘窗地台", Type: 拆除, Price: 165, Unit: "m",
  124. Remark: "1、含购袋、垃圾运至小区指定堆放地点(运距小于100米以内,超过另加10.00元/M)。2、不足2米按2米计算。",
  125. Splits: []SplitItem{
  126. {Type: 拆除, Price: 80},
  127. },
  128. },
  129. {
  130. Name: "拆除门垛", Type: 拆除, Price: 30, Unit: "个",
  131. Remark: "1、含购袋、垃圾运至小区指定堆放地点(运距小于100米以内,超过另加10.00元/个)。",
  132. Splits: []SplitItem{
  133. {Type: 拆除, Price: 15},
  134. },
  135. },
  136. /*{
  137. Name: "铲除顶面原有刮瓷", Type: 拆除, Price: 20, Unit: "m",
  138. Remark: "1、含购袋、垃圾运至小区指定堆放地点(运距小于100米以内,超过另加10.00元/M2)。",
  139. Splits: []SplitItem{
  140. {Type: 拆除, Price: 12},
  141. },
  142. },*/
  143. {
  144. Name: "拆除原有门套及门(含铝合金)", Type: 拆除, Price: 50, Unit: "个",
  145. Remark: "含购袋、垃圾运至小区指定堆放地点(运距小于100米以内,超过另加10.00元/M2)。",
  146. Splits: []SplitItem{
  147. {Type: 拆除, Price: 30},
  148. },
  149. },
  150. {
  151. Name: "外墙乳胶漆打磨", Type: 拆除, Price: 30, Unit: "m²",
  152. Remark: "1、含购袋、垃圾运至小区指定堆放地点(运距小于100米以内,超过另加10.00元/M2)。",
  153. Splits: []SplitItem{
  154. {Type: 拆除, Price: 20},
  155. },
  156. },
  157. {
  158. Name: "卫生间墙面打磨(油性防水层)", Type: 拆除, Price: 30, Unit: "m²",
  159. Remark: "1、含购袋、垃圾运至小区指定堆放地点(运距小于100米以内,超过另加10.00元/M2)。",
  160. Splits: []SplitItem{
  161. {Type: 拆除, Price: 20},
  162. },
  163. },
  164. }
  165. var 水电项 = []BuildItem{
  166. {
  167. Name: "水电基础", Type: 水电, Price: 108, Unit: "m²",
  168. Remark: "含人工开槽,多股软线,柜机空调、卫生间及厨房安装4平方线(地线2.5平方),分体空调及普通插座2.5平方线(地线1.5平方),照明线1.5平方线,上水管为日丰PPR管,下水管为国标PVC管.面积按房子外框面积计算(不含开关插座面板,水龙头,阀门等,用户强电盒和弱电盒移位,用户材料如有特殊要求按市场材料价格补差,如业主需配备中央循环系统,中央空调,饮水净化系统,空气源热水器,地暖,家庭影院等有特殊水电安装所需材料业主自购)。",
  169. Splits: []SplitItem{
  170. {Type: 水电基础, Price: 23},
  171. {
  172. Type: 水电材料,
  173. TotalCalc: func(context *ItemContext, number float64) (float64, error) {
  174. if number < 60 {
  175. return number * 55, nil
  176. }
  177. if number <= 90 {
  178. return number * 50, nil
  179. }
  180. t := number * 45
  181. if t < 4500 {
  182. return 4500, nil
  183. }
  184. return t, nil
  185. },
  186. },
  187. },
  188. },
  189. {
  190. Name: "水电安装", Type: 水电, Price: 800, Unit: "套",
  191. Remark: "仅含人工,不含水晶灯安装。两房报价:800元;增加一房加200元",
  192. PriceCalc: func(context *ItemContext) (float64, error) {
  193. price := context.Item.Price
  194. if context.Pkg.RoomData.Pkg.Layout[0] > 2 {
  195. price += float64((context.Pkg.RoomData.Pkg.Layout[0] - 2) * 200)
  196. }
  197. //if context.Pkg.RoomData.Pkg.Layout[3] > 1 {
  198. //price += float64((context.Pkg.RoomData.Pkg.Layout[0] - 1) * 120)
  199. //}
  200. return price, nil
  201. },
  202. Splits: []SplitItem{{
  203. Type: 水电安装, Price: 12,
  204. PriceCalc: func(context *ItemContext) (float64, error) {
  205. return context.Item.Splits[0].Price * context.Pkg.RoomData.Pkg.Area, nil
  206. },
  207. }},
  208. },
  209. {
  210. Name: "地面线管开槽", Type: 水电, Price: 10, Unit: "m²",
  211. Remark: "含人工及垃圾清理。",
  212. Splits: []SplitItem{
  213. {Type: 水电基础, Price: 10},
  214. },
  215. SpecialProject: true,
  216. },
  217. {
  218. Name: "复式楼、别墅水电费用调差费用", Type: 水电, Price: 10, Unit: "m²",
  219. Remark: "1、挑空层复式楼、别墅水电施工全楼层增加水电工程费用调差10元/平米; 2、非挑空层复式楼、别墅水电施工除入户层外,其它楼层增加水电工程费用调差10元/平米。",
  220. Splits: []SplitItem{
  221. {Type: 水电基础, Price: 10},
  222. },
  223. SpecialProject: true,
  224. },
  225. {
  226. Name: "强.弱电箱移位", Type: 水电, Price: 99, Unit: "个",
  227. Remark: "仅含人工。",
  228. Splits: []SplitItem{
  229. {Type: 水电基础, Price: 60},
  230. },
  231. },
  232. }
  233. var 泥工项 = []BuildItem{
  234. {
  235. Name: "新砌砖墙(24墙)", Type: 泥工, Price: 228, Unit: "m²",
  236. PriceCalc: func(context *ItemContext) (float64, error) {
  237. if context.ItemNumber >= 30 {
  238. return 222, nil
  239. }
  240. return 228, nil
  241. },
  242. Remark: "含砖、水泥、沙,双面粉刷。",
  243. Splits: []SplitItem{{Type: 泥工, Price: 70}},
  244. SpecialProjectCalc: func(context *ItemContext) (bool, error) {
  245. return context.ItemNumber >= 30, nil
  246. },
  247. },
  248. /*{
  249. Name: "新砌砖墙(24墙)(大于30M²)", Type: 泥工, Price: 222, Unit: "m²",
  250. Remark: "含砖、水泥、沙,双面粉刷。",
  251. Splits: []SplitItem{{Type: 泥工, Price: 70}},
  252. },*/
  253. {
  254. Name: "新砌砖墙(12墙)", Type: 泥工, Price: 186, Unit: "m²",
  255. PriceCalc: func(context *ItemContext) (float64, error) {
  256. if context.ItemNumber >= 30 {
  257. return 166, nil
  258. }
  259. return 186, nil
  260. },
  261. Remark: "含砖、水泥、沙,双面粉刷。",
  262. Splits: []SplitItem{{Type: 泥工, Price: 60}},
  263. SpecialProjectCalc: func(context *ItemContext) (bool, error) {
  264. return context.ItemNumber >= 30, nil
  265. },
  266. },
  267. /*{
  268. Name: "新砌砖墙(12墙)(大于30M²)", Type: 泥工, Price: 186, Unit: "m²",
  269. Remark: "含砖、水泥、沙,双面粉刷。",
  270. Splits: []SplitItem{{Type: 泥工, Price: 60}},
  271. },*/
  272. {
  273. Name: "新砌砖墙 上楼费", Type: 泥工, Price: 23, Unit: "层",
  274. Remark: "",
  275. Splits: []SplitItem{{Type: 沙石材料, Price: 14}},
  276. },
  277. {
  278. Name: "粉线槽", Type: 泥工, Price: 6, Unit: "m²",
  279. Remark: "含人工和水泥、沙。面积按房子外框面积计算。",
  280. Splits: []SplitItem{{Type: 泥工, Price: 6}},
  281. },
  282. {
  283. Name: "地面贴砖(300*300mm-800*800mm)", Type: 泥工, Price: 68, Unit: "m²",
  284. Remark: "含人工和水泥、沙。主材及勾缝剂业主自购。特殊贴法(做缝、斜铺)各加8.00元/M2。铺贴厚度小于5公分(含地砖厚度),每增加1公分按6.00元/公分计算。",
  285. Splits: []SplitItem{{Type: 泥工, Price: 45}},
  286. },
  287. {
  288. Name: "地面贴砖(600*1200mm)", Type: 泥工, Price: 68, Unit: "m²",
  289. Remark: "含人工和水泥、沙。主材及勾缝剂业主自购。特殊贴法(做缝、斜铺)各加8.00元/M2。铺贴厚度小于5公分(含地砖厚度),每增加1公分按6.00元/公分计算。",
  290. Splits: []SplitItem{{Type: 泥工, Price: 55}},
  291. },
  292. {
  293. Name: "地面贴砖(750*1500mm)", Type: 泥工, Price: 108, Unit: "m²",
  294. Remark: "含人工和水泥、沙。主材及勾缝剂业主自购。特殊贴法(做缝、斜铺)各加8.00元/M2。铺贴厚度小于5公分(含地砖厚度),每增加1公分按6.00元/公分计算。",
  295. Splits: []SplitItem{{Type: 泥工, Price: 65}},
  296. },
  297. {
  298. Name: "地面铺贴厚度超高补差", Type: 泥工, Price: 6, Unit: "公分",
  299. Remark: "铺贴厚度≤5公分(含地砖厚度),每增加1公分按6.00元/公分计算",
  300. Splits: []SplitItem{{Type: 沙石材料, Price: 3.5}},
  301. },
  302. {
  303. Name: "墙面贴砖(300*300mm-300*600mm)", Type: 泥工, Price: 68, Unit: "m²",
  304. Remark: "1、规格300*300-300*600瓷片铺贴:68元/M2。含人工和水泥、沙;瓷砖及勾缝剂业主自购;特殊贴法(做缝、斜铺)各加8.00元/M2。2、规格300*300-300*600仿古砖、加工砖铺贴:78元/M2。含人工、水泥、沙、背胶。瓷砖及勾缝剂业主自购。特殊贴法(做缝、拼花、斜铺)各加10元/M2。",
  305. Splits: []SplitItem{{Type: 泥工, Price: 45}},
  306. },
  307. {
  308. Name: "墙面贴砖(400*800mm)", Type: 泥工, Price: 68, Unit: "m²",
  309. Remark: "1、规格300*300-300*600瓷片铺贴:68元/M2。含人工和水泥、沙;瓷砖及勾缝剂业主自购;特殊贴法(做缝、斜铺)各加8.00元/M2。2、规格300*300-300*600仿古砖、加工砖铺贴:78元/M2。含人工、水泥、沙、背胶。瓷砖及勾缝剂业主自购。特殊贴法(做缝、拼花、斜铺)各加10元/M2。",
  310. Splits: []SplitItem{{Type: 泥工, Price: 45}},
  311. },
  312. {
  313. Name: "墙面贴砖(600*1200mm)", Type: 泥工, Price: 129, Unit: "m²",
  314. Remark: "1、规格300*300-300*600瓷片铺贴:68元/M2。含人工和水泥、沙;瓷砖及勾缝剂业主自购;特殊贴法(做缝、斜铺)各加8.00元/M2。2、规格300*300-300*600仿古砖、加工砖铺贴:78元/M2。含人工、水泥、沙、背胶。瓷砖及勾缝剂业主自购。特殊贴法(做缝、拼花、斜铺)各加10元/M2。",
  315. Splits: []SplitItem{{Type: 泥工, Price: 55}},
  316. },
  317. {
  318. Name: "墙面贴砖(750*1500mm)", Type: 泥工, Price: 200, Unit: "m²",
  319. Remark: "1、规格300*300-300*600瓷片铺贴:68元/M2。含人工和水泥、沙;瓷砖及勾缝剂业主自购;特殊贴法(做缝、斜铺)各加8.00元/M2。2、规格300*300-300*600仿古砖、加工砖铺贴:78元/M2。含人工、水泥、沙、背胶。瓷砖及勾缝剂业主自购。特殊贴法(做缝、拼花、斜铺)各加10元/M2。",
  320. Splits: []SplitItem{{Type: 泥工, Price: 85}},
  321. },
  322. {
  323. Name: "地砖(石材)拼花", Type: 泥工, Price: 105, Unit: "m²",
  324. Remark: "含人工和水泥、沙;瓷砖(石材)及勾缝剂业主自购;",
  325. Splits: []SplitItem{{Type: 泥工, Price: 60}},
  326. },
  327. {
  328. Name: "波导线铺贴", Type: 泥工, Price: 25, Unit: "m",
  329. Remark: "含人工和水泥、沙;瓷砖(石材)及勾缝剂业主自购;",
  330. Splits: []SplitItem{{Type: 泥工, Price: 10}},
  331. },
  332. {
  333. Name: "踢脚线铺贴(明贴)", Type: 泥工, Price: 15, Unit: "m",
  334. Remark: "含人工和水泥、沙。踢脚线业主自购。",
  335. Splits: []SplitItem{{Type: 泥工, Price: 8}},
  336. },
  337. {
  338. Name: "踢脚线铺贴(暗贴)", Type: 泥工, Price: 30, Unit: "m",
  339. Remark: "含人工和水泥、沙。踢脚线业主自购。",
  340. Splits: []SplitItem{{Type: 泥工, Price: 20}},
  341. },
  342. {
  343. Name: "踢脚线铺贴(暗贴) 补差", Type: 泥工, Price: 15, Unit: "m",
  344. Remark: "含人工和水泥、沙。踢脚线业主自购。",
  345. Splits: []SplitItem{{Type: 泥工, Price: 12}},
  346. },
  347. {
  348. Name: "铺贴石材踢脚线", Type: 泥工, Price: 20, Unit: "m",
  349. Remark: "含人工和水泥、沙,石材地脚线业主自购。",
  350. Splits: []SplitItem{{Type: 泥工, Price: 10}},
  351. },
  352. {
  353. Name: "挡水线", Type: 泥工, Price: 35, Unit: "m",
  354. Remark: "含人工和水泥、沙,挡水线业主自购。",
  355. Splits: []SplitItem{{Type: 泥工, Price: 20}},
  356. },
  357. {
  358. Name: "地面找平", Type: 泥工, Price: 38, Unit: "m²",
  359. Remark: "含人工和水泥、沙。铺贴厚度≤5公分,每增加1公分按6.00元/公分计算。",
  360. Splits: []SplitItem{{Type: 泥工, Price: 18}},
  361. },
  362. {
  363. Name: "封包管道(单管或双管)", Type: 泥工, Price: 250, Unit: "根",
  364. Remark: "预制包管及消音处理,水泥沙浆粉刷。按2.5米/根计算 ",
  365. Splits: []SplitItem{{Type: 封包管道, Price: 150}},
  366. },
  367. {
  368. Name: "安装门槛石", Type: 泥工, Price: 40, Unit: "m",
  369. Remark: "含人工和水泥、沙。门槛石业主自购。",
  370. Splits: []SplitItem{{Type: 泥工, Price: 20}},
  371. },
  372. {
  373. Name: "小窗台大理石安装", Type: 泥工, Price: 40, Unit: "m",
  374. Remark: "含人工和水泥、沙。小窗台大理石公司负责,宽度≤200MM。",
  375. Splits: []SplitItem{{Type: 泥工, Price: 20}},
  376. },
  377. {
  378. Name: "窗台大理石安装 宽度>200MM<700MM", Type: 泥工, Price: 60, Unit: "m",
  379. Remark: "含人工和水泥、沙。窗台大理石公司负责,宽度>200MM<700MM。",
  380. Splits: []SplitItem{{Type: 泥工, Price: 40}},
  381. },
  382. {
  383. Name: "窗台大理石安装 宽度≥700MM", Type: 泥工, Price: 80, Unit: "m",
  384. Remark: "含人工和水泥、沙。窗台大理石公司负责,宽度≥700MM。",
  385. Splits: []SplitItem{{Type: 泥工, Price: 40}},
  386. },
  387. {
  388. Name: "安装石基", Type: 泥工, Price: 40, Unit: "m",
  389. Remark: "含人工和水泥、沙。",
  390. Splits: []SplitItem{{Type: 泥工, Price: 20}},
  391. },
  392. {
  393. Name: "过桥板", Type: 泥工, Price: 75, Unit: "m",
  394. Remark: "含人工、水泥、沙、钢筋。",
  395. Splits: []SplitItem{{Type: 泥工, Price: 20}},
  396. },
  397. {
  398. Name: "拆除后水泥沙浆粉刷(宽30㎝以内)", Type: 泥工, Price: 30, Unit: "m",
  399. Remark: "含人工、水泥、沙。",
  400. Splits: []SplitItem{{Type: 泥工, Price: 20}},
  401. },
  402. {
  403. Name: "砌门垛", Type: 泥工, Price: 80, Unit: "个",
  404. Remark: "含砖、水泥、沙,双面粉刷。",
  405. Splits: []SplitItem{{Type: 泥工, Price: 40}},
  406. },
  407. {
  408. Name: "卫生间回填(卫生间面积≤4.0M²)", Type: 泥工, Price: 350, Unit: "项",
  409. Remark: "拆除墙体的垃圾敲碎后回填及沙填充。",
  410. Splits: []SplitItem{{Type: 泥工, Price: 150}},
  411. },
  412. {
  413. Name: "卫生间回填(卫生间面积>4.0M²)", Type: 泥工, Price: 450, Unit: "项",
  414. Remark: "拆除墙体的垃圾敲碎后回填及沙填充。",
  415. Splits: []SplitItem{{Type: 泥工, Price: 150}},
  416. },
  417. {
  418. Name: "卫生间回填(预制板沉箱制作)", Type: 泥工, Price: 320, Unit: "m²",
  419. Remark: "砖墙框架,32.5标号水泥、国标08钢筋结构,6cm厚水泥现浇填沉箱,底部留空二次排水处理。",
  420. Splits: []SplitItem{{Type: 泥工, Price: 100}},
  421. },
  422. {
  423. Name: "卫生间回填(陶粒回填)", Type: 泥工, Price: 480, Unit: "m²",
  424. Remark: "砖墙框架,回填陶粒和沙填充,32.5标号水泥、国标08钢筋结构,做井子格,水泥现浇。",
  425. Splits: []SplitItem{{Type: 泥工, Price: 150}},
  426. },
  427. {
  428. Name: "卫生间回填后水泥砂浆找平", Type: 泥工, Price: 38, Unit: "m²",
  429. Remark: "含人工和水泥、沙。",
  430. Splits: []SplitItem{{Type: 泥工, Price: 18}},
  431. },
  432. {
  433. Name: "水泥砂浆地面抬高150~200mm", Type: 泥工, Price: 65, Unit: "m²",
  434. Remark: "打墙余土填充,表面水泥砂浆,如需用全沙填充,则需另按每平方米78元加收。",
  435. Splits: []SplitItem{{
  436. Type: 泥工,
  437. TotalCalc: func(context *ItemContext, number float64) (float64, error) {
  438. return 100, nil
  439. },
  440. }},
  441. },
  442. {
  443. Name: "水泥砂浆地面抬高200~300mm", Type: 泥工, Price: 85, Unit: "m²",
  444. Remark: "打墙余土填充,表面水泥砂浆,如需用全沙填充,则需另按每平方米98元加收。",
  445. Splits: []SplitItem{{
  446. Type: 泥工,
  447. TotalCalc: func(context *ItemContext, number float64) (float64, error) {
  448. return 100, nil
  449. },
  450. }},
  451. },
  452. {
  453. Name: "烟道挂网加固", Type: 泥工, Price: 220, Unit: "项",
  454. Remark: "含钢丝网及人工粉补和水泥、沙。",
  455. Splits: []SplitItem{{Type: 泥工, Price: 120}},
  456. },
  457. {
  458. Name: "铲除后墙面水泥砂浆粉刷(单面)", Type: 泥工, Price: 30, Unit: "m²",
  459. Remark: "含人工和水泥、沙。(超过3公分,每公分加6元/M2)",
  460. Splits: []SplitItem{{Type: 泥工, Price: 20}},
  461. },
  462. {
  463. Name: "壁龛制作(宽60公分之内)", Type: 泥工, Price: 1000, Unit: "项",
  464. Remark: "含红砖、水泥、沙。",
  465. Splits: []SplitItem{{Type: 泥工, Price: 500}},
  466. },
  467. }
  468. var 油漆材料拆分 = SplitItem{
  469. Type: 油漆材料,
  470. PriceCalc: func(context *ItemContext) (float64, error) {
  471. return utils.FloatSub(utils.FloatMulSlice([]float64{context.Item.Price, 1.15, 0.9, 0.63}, -1), context.Item.Splits[0].Price, -1), nil
  472. },
  473. }
  474. var 油漆项 = []BuildItem{
  475. {
  476. Name: "天棚、墙面批嵌", Type: 油漆, Price: 26, Unit: "m²",
  477. Remark: "点防锈漆、贴绷带、刮腻子、打磨平整。",
  478. Splits: []SplitItem{{Type: 油漆, Price: 12}, 油漆材料拆分},
  479. },
  480. {
  481. Name: "天棚、墙面乳胶漆", Type: 油漆, Price: 6, Unit: "m²",
  482. Remark: "手刷白色乳胶漆,调色加4元/M2。",
  483. Splits: []SplitItem{{Type: 油漆, Price: 2}, 油漆材料拆分},
  484. },
  485. {
  486. Name: "乳胶漆调色", Type: 油漆, Price: 4, Unit: "m²",
  487. Remark: "手刷白色乳胶漆,调色加4元/M2。",
  488. Splits: []SplitItem{{Type: 油漆, Price: 2}, 油漆材料拆分},
  489. },
  490. {
  491. Name: "水泥毛坯顶找平", Type: 油漆, Price: 12, Unit: "m²",
  492. Remark: "石膏粉、白胶及人工。",
  493. Splits: []SplitItem{{Type: 油漆, Price: 5}, 油漆材料拆分},
  494. },
  495. {
  496. Name: "全房挂网粉刷", Type: 油漆, Price: 18, Unit: "m²",
  497. Remark: "含纤维网及刮瓷人工补差",
  498. Splits: []SplitItem{{Type: 油漆材料, Price: 2}},
  499. },
  500. }
  501. var 木工材料拆分 = SplitItem{
  502. Type: 木工材料,
  503. PriceCalc: func(context *ItemContext) (float64, error) {
  504. return utils.FloatSub(utils.FloatMulSlice([]float64{context.Item.Price, 0.9, 0.63}, -1), context.Item.Splits[0].Price, -1), nil
  505. },
  506. }
  507. var 木工项 = []BuildItem{
  508. {
  509. Name: "隔音墙(双面)", Type: 木工, Price: 150, Unit: "m²",
  510. Remark: "轻钢龙骨或甲板框架,纸面石膏板封面,内填充隔音棉;不含批灰、乳胶漆。",
  511. Splits: []SplitItem{{Type: 木工, Price: 45}, 木工材料拆分},
  512. },
  513. {
  514. Name: "隔音墙(单面)", Type: 木工, Price: 120, Unit: "m²",
  515. Remark: "轻钢龙骨或甲板骨框架,纸面石膏板封面,内填充隔音棉;不含批灰、乳胶漆。",
  516. Splits: []SplitItem{{Type: 木工, Price: 35}, 木工材料拆分},
  517. },
  518. {
  519. Name: "直线造型吊顶(二级)", Type: 木工, Price: 165, Unit: "m²",
  520. Remark: "轻钢龙骨或木龙骨框架,纸面石膏板拼接封面,按展开面积计算,含灯槽制作七(±1)厘夹板衬底,不含批灰和乳胶漆。",
  521. Splits: []SplitItem{{Type: 木工, Price: 45}, 木工材料拆分},
  522. },
  523. {
  524. Name: "直线造型吊顶(三级)", Type: 木工, Price: 175, Unit: "m²",
  525. Remark: "轻钢龙骨或甲板骨框架,纸面石膏板封面,内填充隔音棉;不含批灰、乳胶漆。",
  526. Splits: []SplitItem{{Type: 木工, Price: 55}, 木工材料拆分},
  527. },
  528. {
  529. Name: "双层直线造型吊顶(二级)", Type: 木工, Price: 196, Unit: "m²",
  530. Remark: "轻钢龙骨或木龙骨框架,双层纸面石膏板拼接封面,按展开面积计算,含灯槽制作七(±1)厘夹板衬底,不含批灰和乳胶漆。",
  531. Splits: []SplitItem{{Type: 木工, Price: 50}, 木工材料拆分},
  532. },
  533. {
  534. Name: "双层直线造型吊顶(三级)", Type: 木工, Price: 215, Unit: "m²",
  535. Remark: "轻钢龙骨或木龙骨框架,双层纸面石膏板拼接封面,按展开面积计算,含灯槽制作七(±1)厘夹板衬底,不含批灰和乳胶漆。",
  536. Splits: []SplitItem{{Type: 木工, Price: 60}, 木工材料拆分},
  537. },
  538. {
  539. Name: "异型吊顶", Type: 木工, Price: 215, Unit: "m²",
  540. Remark: "轻钢龙骨或木龙骨框架,纸面石膏板拼接封面,按展开面积计算,含灯槽制作七(±1)厘夹板衬底,不含批灰和乳胶漆。",
  541. Splits: []SplitItem{{Type: 木工, Price: 80}, 木工材料拆分},
  542. },
  543. {
  544. Name: "双层异型吊顶", Type: 木工, Price: 255, Unit: "m²",
  545. Remark: "轻钢龙骨或木龙骨框架,双层纸面石膏板拼接封面,按展开面积计算,含灯槽制作七(±1)厘夹板衬底,不含批灰和乳胶漆。",
  546. Splits: []SplitItem{{Type: 木工, Price: 100}, 木工材料拆分},
  547. },
  548. {
  549. Name: "硅酸钙板平面吊顶", Type: 木工, Price: 182, Unit: "m²",
  550. Remark: "轻钢龙骨结构(局部木龙骨辅助),硅酸钙板拼接封面,按展开面积计算,不含批嵌、乳胶漆、电线、灯具。此报价适用于地下室、卫生间、厨房或室外等潮湿区域。",
  551. Splits: []SplitItem{{Type: 木工, Price: 60}, 木工材料拆分},
  552. },
  553. {
  554. Name: "硅酸钙板造型吊顶(二级)", Type: 木工, Price: 210, Unit: "m²",
  555. Remark: "轻钢龙骨结构(局部木龙骨辅助),叠级或造型处9(±1)厘板或15(±1)厘大芯板打底,硅酸钙板拼接封面,按展开面积计算,不含批嵌、乳胶漆、电线、灯具。此报价适用于地下室、卫生间、厨房或室外等潮湿区域。",
  556. Splits: []SplitItem{{Type: 木工, Price: 60}, 木工材料拆分},
  557. },
  558. /*{
  559. Name: "硅酸钙板造型吊顶(三级)", Type: 木工, Price: 198, Unit: "m²",
  560. Remark: "轻钢龙骨或木龙骨框架,叠级或造型处9(±1)厘板或15(±1)厘大芯板打底,硅酸钙板拼接封面,按展开面积计算,不含批嵌、乳胶漆、电线、灯具。此报价适用于地下室、卫生间、厨房或室外等潮湿区域。",
  561. Splits: []SplitItem{{Type: 木工, Price: 55}, 木工材料拆分},
  562. },*/
  563. {
  564. Name: "石膏包假梁", Type: 木工, Price: 115, Unit: "m",
  565. Remark: "夹板基础,刷防火涂料,纸面石膏板拼接封面,不含批灰和乳胶漆。",
  566. Splits: []SplitItem{{Type: 木工, Price: 45}, 木工材料拆分},
  567. },
  568. {
  569. Name: "天花2公分小裙边(下挂高度<15公分)", Type: 木工, Price: 33, Unit: "m",
  570. Remark: "双层纸面石膏板拼接封面,数量按米计算,不含批灰和乳胶漆。",
  571. Splits: []SplitItem{{Type: 木工, Price: 10}, 木工材料拆分},
  572. },
  573. {
  574. Name: "天花2公分小裙边(下挂高度15>20公分)", Type: 木工, Price: 38, Unit: "m",
  575. Remark: "双层纸面石膏板拼接封面,数量按米计算,不含批灰和乳胶漆。",
  576. Splits: []SplitItem{{Type: 木工, Price: 12}, 木工材料拆分},
  577. },
  578. {
  579. Name: "天花2公分小裙边(下挂高度20>25公分)", Type: 木工, Price: 43, Unit: "m",
  580. Remark: "双层纸面石膏板拼接封面,数量按米计算,不含批灰和乳胶漆。",
  581. Splits: []SplitItem{{Type: 木工, Price: 15}, 木工材料拆分},
  582. },
  583. {
  584. Name: "天花2公分小裙边(下挂高度25>30公分)", Type: 木工, Price: 48, Unit: "m",
  585. Remark: "双层纸面石膏板拼接封面,数量按米计算,不含批灰和乳胶漆。",
  586. Splits: []SplitItem{{Type: 木工, Price: 18}, 木工材料拆分},
  587. },
  588. {
  589. Name: "木制窗帘盒", Type: 木工, Price: 48, Unit: "m",
  590. Remark: "12(±1)厘夹板或15(±1)厘大芯板结构,高度小于250mm,宽度小于200mm,每增加100mm按10元计算。",
  591. Splits: []SplitItem{{Type: 木工, Price: 13}, 木工材料拆分},
  592. },
  593. {
  594. Name: "衣柜背板加封石膏板", Type: 木工, Price: 75, Unit: "m²",
  595. Remark: "衣柜背板加封石膏板,不含批灰乳胶漆。",
  596. Splits: []SplitItem{{Type: 木工, Price: 30}, 木工材料拆分},
  597. },
  598. {
  599. Name: "石膏板封门头", Type: 木工, Price: 98, Unit: "m",
  600. Remark: "18(±1)厘大芯板基础,面贴石膏板。含人工及材料,不足一米按一米计算(限高度500mm以内,超过按平方计算,不足1平方按1平方计算)。",
  601. Splits: []SplitItem{{Type: 木工, Price: 30}, 木工材料拆分},
  602. },
  603. }
  604. var 开关面板项 = []BuildItem{
  605. {
  606. Name: "开关面板控额", Type: 开关面板, Price: 0, Unit: "位",
  607. Remark: "",
  608. Splits: []SplitItem{{
  609. Type: 开关面板,
  610. PriceCalc: func(context *ItemContext) (float64, error) {
  611. prices := [][]float64{{9.8, 9.8, 8, 8, 5.5, 5.5, 5.5}, {9.8, 9.8, 9.8, 8, 8, 8, 5.5, 5.5, 5.5}}
  612. num := 65
  613. if context.Pkg.RoomData.Pkg.Layout[0] > 2 {
  614. num += (context.Pkg.RoomData.Pkg.Layout[0] - 2) * 13
  615. }
  616. if context.Pkg.RoomData.Pkg.Layout[3] > 1 {
  617. num += (context.Pkg.RoomData.Pkg.Layout[3] - 1) * 4
  618. }
  619. if context.Pkg.RoomData.Pkg.Layout[4] > 1 {
  620. num += (context.Pkg.RoomData.Pkg.Layout[4] - 1) * 3
  621. }
  622. return utils.FloatMul(prices[context.Region.Brand][context.Region.Series], float64(num), -1), nil
  623. },
  624. }},
  625. },
  626. }
  627. var 防水项 = []BuildItem{
  628. {
  629. Name: "卫生间地面防水", Type: 防水, Price: 68, Unit: "m²",
  630. Remark: "商业机密。",
  631. Splits: []SplitItem{{
  632. Type: 防水,
  633. TotalCalc: func(context *ItemContext, number float64) (float64, error) {
  634. if context.Space.SinkBackfill {
  635. return 650, nil
  636. }
  637. return 550, nil
  638. },
  639. }},
  640. },
  641. {
  642. Name: "卫生间墙面防水", Type: 防水, Price: 68, Unit: "m²",
  643. Remark: "商业机密。",
  644. Splits: []SplitItem{{
  645. Type: 防水,
  646. Price: 0,
  647. }},
  648. },
  649. {
  650. Name: "阳台地面防水", Type: 防水, Price: 68, Unit: "m²",
  651. Remark: "商业机密。",
  652. Splits: []SplitItem{{
  653. Type: 防水,
  654. TotalCalc: func(context *ItemContext, number float64) (float64, error) {
  655. if number < 5 {
  656. return 200, nil
  657. }
  658. return utils.FloatMul(number, 40, -1), nil
  659. },
  660. }},
  661. },
  662. {
  663. Name: "阳台管口地漏防水处理", Type: 防水, Price: 200, Unit: "项",
  664. Remark: "商业机密。",
  665. Splits: []SplitItem{{
  666. Type: 防水,
  667. Price: 50,
  668. }},
  669. },
  670. }
  671. var 其它项 = []BuildItem{
  672. {
  673. Name: "地砖铺贴后成品保护", Type: 其他, Price: 10, Unit: "m²",
  674. Remark: "定制专用保护材料。按地砖铺贴面积计算",
  675. //Splits: []SplitItem{{Type: 其他, Price: 3.8}},
  676. },
  677. {
  678. Name: "复式楼、别墅架空脚手架", Type: 其他, Price: 500, Unit: "副",
  679. Remark: "按楼层计算,以二层500元为基准,每增加一层增加500元。",
  680. Splits: []SplitItem{{Type: 杂费, Price: 500}},
  681. SpecialProject: true,
  682. },
  683. {
  684. Name: "复式楼、别墅施工楼梯踏步制作", Type: 其他, Price: 500, Unit: "项",
  685. Remark: "按楼层计算,以二层500元为基准每增加一层增加500元(适用于施工现场无楼梯的复式楼、别墅)。",
  686. Splits: []SplitItem{{Type: 杂费, Price: 500}},
  687. SpecialProject: true,
  688. },
  689. {
  690. Name: "复式楼、别墅施工安全防护", Type: 其他, Price: 500, Unit: "项",
  691. Remark: "按楼层计算,以二层500元为基准每增加一层增加500元(复式楼、别墅必报项目)。",
  692. Splits: []SplitItem{{Type: 杂费, Price: 500}},
  693. SpecialProject: true,
  694. },
  695. {
  696. Name: "区域沙补差费用", Type: 其他, Price: 1, Unit: "项",
  697. Remark: "",
  698. Splits: []SplitItem{{Type: 沙石材料, Price: 1}},
  699. SpecialProject: true,
  700. },
  701. }
  702. var BuildItems = append(append(append(append(append(append(append(拆除项, 水电项...), 泥工项...), 油漆项...), 木工项...), 开关面板项...), 其它项...), 防水项...)