spread.js 83 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219
  1. 'use strict';
  2. /**
  3. *
  4. *
  5. * @author Mai
  6. * @date 2018/5/31
  7. * @version
  8. */
  9. const dealCols = ['deal_qty', 'deal_tp'];
  10. const dgnCols = ['dgn_qty1', 'dgn_qty2', 'dgn_price'];
  11. const clCols = ['sjcl_qty', 'sjcl_tp', 'qtcl_qty', 'qtcl_tp', 'quantity', 'total_price'];
  12. const stageDgnCols = ['deal_dgn_qty1', 'deal_dgn_qty2', 'c_dgn_qty1', 'c_dgn_qty2', 'final_dgn_price'];
  13. const realCompleteCols = ['real_qty', 'estimate_qty'];
  14. const priceDiffCols = ['org_price', 'pc_tp'];
  15. const thirdPartyCols = {
  16. gxby: ['gxby'],
  17. dagl: ['dagl']
  18. };
  19. const minusNoValueCols = ['qc_minus_qty'];
  20. // 未定义列的基础spread配置
  21. const EmptySpreadSetting = {
  22. tz_ledger_set: {
  23. bills: {
  24. cols: [],
  25. emptyRows: 3,
  26. headRows: 2,
  27. headRowHeight: [25, 25],
  28. defaultRowHeight: 21,
  29. headerFont: '12px 微软雅黑',
  30. font: '12px 微软雅黑',
  31. },
  32. pos: {
  33. cols: [],
  34. emptyRows: 3,
  35. headRows: 2,
  36. headRowHeight: [25, 25],
  37. headColWidth: [30],
  38. defaultRowHeight: 21,
  39. headerFont: '12px 微软雅黑',
  40. font: '12px 微软雅黑',
  41. }
  42. },
  43. tz_stage_set: {
  44. bills: {
  45. cols: [],
  46. emptyRows: 0,
  47. headRows: 2,
  48. headRowHeight: [25, 25],
  49. defaultRowHeight: 21,
  50. headerFont: '12px 微软雅黑',
  51. font: '12px 微软雅黑',
  52. frozenColCount: 5,
  53. frozenLineColor: '#93b5e4',
  54. },
  55. pos: {
  56. cols: [],
  57. emptyRows: 3,
  58. headRows: 2,
  59. headRowHeight: [25, 25],
  60. headColWidth: [30],
  61. defaultRowHeight: 21,
  62. headerFont: '12px 微软雅黑',
  63. font: '12px 微软雅黑',
  64. }
  65. },
  66. gcl_ledger_set:{
  67. bills: {
  68. cols: [],
  69. emptyRows: 3,
  70. headRows: 2,
  71. headRowHeight: [25, 25],
  72. defaultRowHeight: 21,
  73. headerFont: '12px 微软雅黑',
  74. font: '12px 微软雅黑',
  75. },
  76. pos: {
  77. cols: [],
  78. emptyRows: 3,
  79. headRows: 2,
  80. headRowHeight: [25, 25],
  81. headColWidth: [30],
  82. defaultRowHeight: 21,
  83. headerFont: '12px 微软雅黑',
  84. font: '12px 微软雅黑',
  85. }
  86. },
  87. gcl_stage_set: {
  88. bills: {
  89. cols: [],
  90. emptyRows: 0,
  91. headRows: 2,
  92. headRowHeight: [25, 25],
  93. defaultRowHeight: 21,
  94. headerFont: '12px 微软雅黑',
  95. font: '12px 微软雅黑',
  96. frozenColCount: 5,
  97. frozenLineColor: '#93b5e4',
  98. },
  99. pos: {
  100. cols: [],
  101. emptyRows: 3,
  102. headRows: 2,
  103. headRowHeight: [25, 25],
  104. headColWidth: [30],
  105. defaultRowHeight: 21,
  106. headerFont: '12px 微软雅黑',
  107. font: '12px 微软雅黑',
  108. }
  109. },
  110. };
  111. // 可设置列集合
  112. const BaseSetCol = {
  113. Ledger: [
  114. { key: 'code', name: '项目节编号', fixed: ['move', 'valid', 'alias'], bills: 1, pos: 0, },
  115. { key: 'b_code', name: '清单编号', fixed: ['alias'], bills: 1, pos: 0, },
  116. { key: 'ex_memo1', name: '备注1', fixed: [], bills: 1, pos: 1, },
  117. { key: 'name', name: '名称/计量单元', fixed: ['alias'], bills: 1, pos: 1 },
  118. { key: 'features', name: '项目特征', fixed: ['valid', 'alias'], bills: 1, pos: 0 },
  119. { key: 'position', name: '位置', fixed: [], bills: 0, pos: 1 },
  120. { key: 'unit', name: '单位', fixed: ['alias'], bills: 1, pos: 0 },
  121. { key: 'unit_price', name: '单价', fixed: ['alias'], bills: 1, pos: 0 },
  122. { key: 'dgn_qty', name: '项目节数量', fixed: [], bills: 1, pos: 0, },
  123. { key: 'dgn_price', name: '经济指标', fixed: ['alias'], bills: 1, pos: 0},
  124. { key: 'deal_calc', name: '签约', fixed: [], bills: 1, pos: 1, },
  125. { key: 'tz_calc', name: '台账', fixed: ['alias'], bills: 1, pos: 1, },
  126. { key: 'drawing_code', name: '图册号', fixed: ['alias'], bills: 1, pos: 1 },
  127. { key: 'node_type', name: '费用类别', fixed: ['alias'], bills: 1, pos: 0 },
  128. { key: 'memo', name: '备注', fixed: ['alias'], bills: 1, pos: 0 },
  129. { key: 'ex_memo2', name: '备注2', fixed: [], bills: 1, pos: 1, },
  130. { key: 'ex_memo3', name: '备注3', fixed: [], bills: 1, pos: 1, },
  131. ],
  132. Stage: [
  133. { key: 'code', name: '项目节编号', fixed: ['move', 'valid', 'alias'], bills: 1, pos: 0 },
  134. { key: 'b_code', name: '清单编号', fixed: ['alias'], bills: 1, pos: 0 },
  135. { key: 'ex_memo1', name: '备注1', fixed: [], bills: 1, pos: 1, },
  136. { key: 'name', name: '名称/计量单元', fixed: ['alias'], bills: 1, pos: 1 },
  137. { key: 'features', name: '项目特征', fixed: ['valid', 'alias'], bills: 1, pos: 0 },
  138. { key: 'position', name: '位置', fixed: [], bills: 0, pos: 1},
  139. { key: 'unit', name: '单位', fixed: ['alias'], bills: 1, pos: 0 },
  140. { key: 'unit_price', name: '单价', fixed: ['alias'], bills: 1, pos: 0 },
  141. { key: 'deal_calc', name: '签约', fixed: [], bills: 1, pos: 0 },
  142. { key: 'tz_calc', name: '台账', fixed: [], bills: 1, pos: 1},
  143. { key: 'real_qty', name: '现场实际数量', fixed: ['valid', 'alias'], bills: 0, pos: 1},
  144. { key: 'estimate_qty', name: '预计变更数量', fixed: ['valid', 'alias'], bills: 0, pos: 1},
  145. { key: 'cur_calc', name: '本期计量', fixed: ['alias'], bills: 1, pos: 1, },
  146. { key: 'end_calc', name: '截止本期计量', fixed: ['alias'], bills: 1, pos: 1, },
  147. { key: 'deal_dgn_qty', name: '合同-项目节数量', fixed: [], bills: 1, pos: 0, },
  148. { key: 'c_dgn_qty', name: '变更-项目节数量', fixed: [], bills: 1, pos: 0, },
  149. { key: 'final_dgn_price', name: '经济指标', fixed: [], bills: 1, pos: 0 },
  150. { key: 'postil', name: '本期批注', fixed: [], bills: 1, pos: 1 },
  151. { key: 'drawing_code', name: '图册号', fixed: [], bills: 1, pos: 1 },
  152. { key: 'memo', name: '备注', fixed: [], bills: 1, pos: 0 },
  153. { key: 'ex_memo2', name: '备注2', fixed: [], bills: 1, pos: 1, },
  154. { key: 'ex_memo3', name: '备注3', fixed: [], bills: 1, pos: 1, },
  155. { key: 'add_stage_order', name: '添加期数', fixed: [], bills: 1, pos: 1, },
  156. { key: 'is_tp', name: '总额计量', fixed: [], bills: 1, pos: 0 },
  157. { key: 'gxby', name: '工序报验', fixed: ['valid', 'alias'], bills: 1, pos: 1, },
  158. { key: 'dagl', name: '档案管理', fixed: ['valid', 'alias'], bills: 1, pos: 1, },
  159. ],
  160. };
  161. // 默认的列设置
  162. const glSpreadTemplate = {
  163. tz_ledger_set: [
  164. { key: 'code', valid: 1 },
  165. { key: 'b_code', valid: 1 },
  166. { key: 'ex_memo1', valid: 0 },
  167. { key: 'name', valid: 1 },
  168. { key: 'features', valid: 0 },
  169. { key: 'position', valid: 1 },
  170. { key: 'unit', valid: 1 },
  171. { key: 'unit_price', valid: 1 },
  172. { key: 'dgn_qty', valid: 1 },
  173. { key: 'dgn_price', valid: 1 },
  174. { key: 'deal_calc', valid: 0, },
  175. { key: 'tz_calc', valid: 1 },
  176. { key: 'drawing_code', valid: 1 },
  177. { key: 'node_type', valid: 1 },
  178. { key: 'memo', valid: 1 },
  179. { key: 'ex_memo2', valid: 0 },
  180. { key: 'ex_memo3', valid: 0 },
  181. ],
  182. tz_stage_set: [
  183. { key: 'code', valid: 1 },
  184. { key: 'b_code', valid: 1 },
  185. { key: 'ex_memo1', valid: 0 },
  186. { key: 'name', valid: 1 },
  187. { key: 'features', valid: 0 },
  188. { key: 'position', valid: 1 },
  189. { key: 'unit', valid: 1 },
  190. { key: 'unit_price', valid: 1 },
  191. { key: 'deal_calc', valid: 0, },
  192. { key: 'tz_calc', valid: 1 },
  193. { key: 'real_qty', valid: 1 },
  194. { key: 'estimate_qty', valid: 1 },
  195. { key: 'cur_calc', valid: 1 },
  196. { key: 'end_calc', valid: 1 },
  197. { key: 'deal_dgn_qty', valid: 1 },
  198. { key: 'c_dgn_qty', valid: 1 },
  199. { key: 'final_dgn_price', valid: 1 },
  200. { key: 'postil', valid: 1},
  201. { key: 'drawing_code', valid: 1 },
  202. { key: 'memo', valid: 1 },
  203. { key: 'ex_memo2', valid: 0 },
  204. { key: 'ex_memo3', valid: 0 },
  205. { key: 'is_tp', valid: 1},
  206. { key: 'gxby', valid: 1},
  207. { key: 'dagl', valid: 1},
  208. ],
  209. gcl_ledger_set: [
  210. { key: 'code', valid: 1 },
  211. { key: 'b_code', valid: 1 },
  212. { key: 'ex_memo1', valid: 0 },
  213. { key: 'name', valid: 1 },
  214. { key: 'features', valid: 0 },
  215. { key: 'position', valid: 1 },
  216. { key: 'unit', valid: 1 },
  217. { key: 'unit_price', valid: 1 },
  218. { key: 'dgn_qty', valid: 1 },
  219. { key: 'dgn_price', valid: 1 },
  220. { key: 'deal_calc', valid: 1, },
  221. { key: 'tz_calc', valid: 0 },
  222. { key: 'drawing_code', valid: 1 },
  223. { key: 'node_type', valid: 1 },
  224. { key: 'memo', valid: 1 },
  225. { key: 'ex_memo2', valid: 0 },
  226. { key: 'ex_memo3', valid: 0 },
  227. ],
  228. gcl_stage_set: [
  229. { key: 'code', valid: 1 },
  230. { key: 'b_code', valid: 1 },
  231. { key: 'ex_memo1', valid: 0 },
  232. { key: 'name', valid: 1 },
  233. { key: 'features', valid: 0 },
  234. { key: 'position', valid: 1 },
  235. { key: 'unit', valid: 1 },
  236. { key: 'unit_price', valid: 1 },
  237. { key: 'deal_calc', valid: 0, },
  238. { key: 'tz_calc', valid: 1 },
  239. { key: 'real_qty', valid: 1 },
  240. { key: 'estimate_qty', valid: 1 },
  241. { key: 'cur_calc', valid: 1 },
  242. { key: 'end_calc', valid: 1 },
  243. { key: 'deal_dgn_qty', valid: 1 },
  244. { key: 'c_dgn_qty', valid: 1 },
  245. { key: 'final_dgn_price', valid: 1 },
  246. { key: 'postil', valid: 1},
  247. { key: 'drawing_code', valid: 1 },
  248. { key: 'memo', valid: 1 },
  249. { key: 'ex_memo2', valid: 0 },
  250. { key: 'ex_memo3', valid: 0 },
  251. { key: 'is_tp', valid: 1},
  252. { key: 'add_stage_order', valid: 1},
  253. { key: 'gxby', valid: 1},
  254. { key: 'dagl', valid: 1},
  255. ],
  256. };
  257. const szSpreadTemplate = {
  258. tz_ledger_set: [
  259. { key: 'code', valid: 1 },
  260. { key: 'b_code', valid: 1 },
  261. { key: 'ex_memo1', valid: 0 },
  262. { key: 'name', valid: 1 },
  263. { key: 'features', valid: 0 },
  264. { key: 'position', valid: 1 },
  265. { key: 'unit', valid: 1 },
  266. { key: 'unit_price', valid: 1 },
  267. { key: 'dgn_qty', valid: 1 },
  268. { key: 'dgn_price', valid: 1 },
  269. { key: 'deal_calc', valid: 0, },
  270. { key: 'tz_calc', valid: 1 },
  271. { key: 'drawing_code', valid: 1 },
  272. { key: 'node_type', valid: 1 },
  273. { key: 'memo', valid: 1 },
  274. { key: 'ex_memo2', valid: 0 },
  275. { key: 'ex_memo3', valid: 0 },
  276. ],
  277. tz_stage_set: [
  278. { key: 'code', valid: 1 },
  279. { key: 'b_code', valid: 1 },
  280. { key: 'ex_memo1', valid: 0 },
  281. { key: 'name', valid: 1 },
  282. { key: 'features', valid: 0 },
  283. { key: 'position', valid: 1 },
  284. { key: 'unit', valid: 1 },
  285. { key: 'unit_price', valid: 1 },
  286. { key: 'deal_calc', valid: 0, },
  287. { key: 'tz_calc', valid: 1 },
  288. { key: 'real_qty', valid: 1 },
  289. { key: 'estimate_qty', valid: 1 },
  290. { key: 'cur_calc', valid: 1 },
  291. { key: 'end_calc', valid: 1 },
  292. { key: 'deal_dgn_qty', valid: 1 },
  293. { key: 'c_dgn_qty', valid: 1 },
  294. { key: 'final_dgn_price', valid: 1 },
  295. { key: 'postil', valid: 1},
  296. { key: 'drawing_code', valid: 1 },
  297. { key: 'memo', valid: 1 },
  298. { key: 'ex_memo2', valid: 0 },
  299. { key: 'ex_memo3', valid: 0 },
  300. { key: 'is_tp', valid: 1},
  301. { key: 'gxby', valid: 1},
  302. { key: 'dagl', valid: 1},
  303. ],
  304. gcl_ledger_set: [
  305. { key: 'code', valid: 1 },
  306. { key: 'b_code', valid: 1 },
  307. { key: 'ex_memo1', valid: 0 },
  308. { key: 'name', valid: 1 },
  309. { key: 'features', valid: 0 },
  310. { key: 'position', valid: 1 },
  311. { key: 'unit', valid: 1 },
  312. { key: 'unit_price', valid: 1 },
  313. { key: 'dgn_qty', valid: 1 },
  314. { key: 'dgn_price', valid: 1 },
  315. { key: 'deal_calc', valid: 1, },
  316. { key: 'tz_calc', valid: 0 },
  317. { key: 'drawing_code', valid: 1 },
  318. { key: 'node_type', valid: 1 },
  319. { key: 'memo', valid: 1 },
  320. { key: 'ex_memo2', valid: 0 },
  321. { key: 'ex_memo3', valid: 0 },
  322. ],
  323. gcl_stage_set: [
  324. { key: 'code', valid: 1 },
  325. { key: 'b_code', valid: 1 },
  326. { key: 'ex_memo1', valid: 0 },
  327. { key: 'name', valid: 1 },
  328. { key: 'features', valid: 0 },
  329. { key: 'position', valid: 1 },
  330. { key: 'unit', valid: 1 },
  331. { key: 'unit_price', valid: 1 },
  332. { key: 'deal_calc', valid: 0, },
  333. { key: 'tz_calc', valid: 1 },
  334. { key: 'real_qty', valid: 1 },
  335. { key: 'estimate_qty', valid: 1 },
  336. { key: 'cur_calc', valid: 1 },
  337. { key: 'end_calc', valid: 1 },
  338. { key: 'deal_dgn_qty', valid: 1 },
  339. { key: 'c_dgn_qty', valid: 1 },
  340. { key: 'final_dgn_price', valid: 1 },
  341. { key: 'postil', valid: 1},
  342. { key: 'drawing_code', valid: 1 },
  343. { key: 'memo', valid: 1 },
  344. { key: 'ex_memo2', valid: 0 },
  345. { key: 'ex_memo3', valid: 0 },
  346. { key: 'is_tp', valid: 1},
  347. { key: 'add_stage_order', valid: 1},
  348. { key: 'gxby', valid: 1},
  349. { key: 'dagl', valid: 1},
  350. ],
  351. };
  352. const fjSpreadTemplate = {
  353. tz_ledger_set: [
  354. { key: 'code', valid: 1 },
  355. { key: 'b_code', valid: 1 },
  356. { key: 'ex_memo1', valid: 0 },
  357. { key: 'name', valid: 1 },
  358. { key: 'features', valid: 0 },
  359. { key: 'position', valid: 1 },
  360. { key: 'unit', valid: 1 },
  361. { key: 'unit_price', valid: 1 },
  362. { key: 'dgn_qty', valid: 1 },
  363. { key: 'dgn_price', valid: 1 },
  364. { key: 'deal_calc', valid: 0, },
  365. { key: 'tz_calc', valid: 1 },
  366. { key: 'drawing_code', valid: 1 },
  367. { key: 'node_type', valid: 1 },
  368. { key: 'memo', valid: 1 },
  369. { key: 'ex_memo2', valid: 0 },
  370. { key: 'ex_memo3', valid: 0 },
  371. ],
  372. tz_stage_set: [
  373. { key: 'code', valid: 1 },
  374. { key: 'b_code', valid: 1 },
  375. { key: 'ex_memo1', valid: 0 },
  376. { key: 'name', valid: 1 },
  377. { key: 'features', valid: 0 },
  378. { key: 'position', valid: 1 },
  379. { key: 'unit', valid: 1 },
  380. { key: 'unit_price', valid: 1 },
  381. { key: 'deal_calc', valid: 0, },
  382. { key: 'tz_calc', valid: 1 },
  383. { key: 'real_qty', valid: 1 },
  384. { key: 'estimate_qty', valid: 1 },
  385. { key: 'cur_calc', valid: 1 },
  386. { key: 'end_calc', valid: 1 },
  387. { key: 'deal_dgn_qty', valid: 1 },
  388. { key: 'c_dgn_qty', valid: 1 },
  389. { key: 'final_dgn_price', valid: 1 },
  390. { key: 'postil', valid: 1},
  391. { key: 'drawing_code', valid: 1 },
  392. { key: 'memo', valid: 1 },
  393. { key: 'ex_memo2', valid: 0 },
  394. { key: 'ex_memo3', valid: 0 },
  395. { key: 'is_tp', valid: 1},
  396. { key: 'gxby', valid: 1},
  397. { key: 'dagl', valid: 1},
  398. ],
  399. gcl_ledger_set: [
  400. { key: 'code', valid: 1 },
  401. { key: 'b_code', valid: 1 },
  402. { key: 'ex_memo1', valid: 0 },
  403. { key: 'name', valid: 1 },
  404. { key: 'features', valid: 0 },
  405. { key: 'position', valid: 1 },
  406. { key: 'unit', valid: 1 },
  407. { key: 'unit_price', valid: 1 },
  408. { key: 'dgn_qty', valid: 1 },
  409. { key: 'dgn_price', valid: 1 },
  410. { key: 'deal_calc', valid: 1, },
  411. { key: 'tz_calc', valid: 0 },
  412. { key: 'drawing_code', valid: 1 },
  413. { key: 'node_type', valid: 1 },
  414. { key: 'memo', valid: 1 },
  415. { key: 'ex_memo2', valid: 0 },
  416. { key: 'ex_memo3', valid: 0 },
  417. ],
  418. gcl_stage_set: [
  419. { key: 'code', valid: 1 },
  420. { key: 'b_code', valid: 1 },
  421. { key: 'ex_memo1', valid: 0 },
  422. { key: 'name', valid: 1 },
  423. { key: 'features', valid: 0 },
  424. { key: 'position', valid: 1 },
  425. { key: 'unit', valid: 1 },
  426. { key: 'unit_price', valid: 1 },
  427. { key: 'deal_calc', valid: 0, },
  428. { key: 'tz_calc', valid: 1 },
  429. { key: 'real_qty', valid: 1 },
  430. { key: 'estimate_qty', valid: 1 },
  431. { key: 'cur_calc', valid: 1 },
  432. { key: 'end_calc', valid: 1 },
  433. { key: 'deal_dgn_qty', valid: 1 },
  434. { key: 'c_dgn_qty', valid: 1 },
  435. { key: 'final_dgn_price', valid: 1 },
  436. { key: 'postil', valid: 1},
  437. { key: 'drawing_code', valid: 1 },
  438. { key: 'memo', valid: 1 },
  439. { key: 'ex_memo2', valid: 0 },
  440. { key: 'ex_memo3', valid: 0 },
  441. { key: 'is_tp', valid: 1},
  442. { key: 'add_stage_order', valid: 1},
  443. { key: 'gxby', valid: 1},
  444. { key: 'dagl', valid: 1},
  445. ],
  446. };
  447. const ProjectSpreadTemplate = [
  448. { code: 'gl', name: '公路', template: glSpreadTemplate, isDefault: 1 },
  449. { code: 'sz', name: '市政', template: szSpreadTemplate },
  450. { code: 'fj', name: '房建', template: fjSpreadTemplate },
  451. { code: 'xxby', name: '小修保养', template: glSpreadTemplate },
  452. ];
  453. const BaseSpreadColSetting = {
  454. Ledger: {
  455. bills: {
  456. code: [{title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 145, formatter: '@', cellType: 'tree'}],
  457. b_code: [{title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 70, formatter: '@',}],
  458. name: [{title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 185, formatter: '@', }],
  459. unit: [{title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 50, formatter: '@', cellType: 'unit'}],
  460. unit_price: [{title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, type: 'Number',}],
  461. dgn_qty: [
  462. {title: '项目节数量|数量1', colSpan: '2|1', rowSpan: '1|1', field: 'dgn_qty1', hAlign: 2, width: 60, type: 'Number', aliasFormat: '{%s}|数量1'},
  463. {title: '|数量2', colSpan: '|1', rowSpan: '|1', field: 'dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  464. ],
  465. dgn_price: [{title: '经济指标', colSpan: '1', rowSpan: '2', field: 'dgn_price', hAlign: 2, width: 60, type: 'Number', readOnly: true}],
  466. deal_calc: [
  467. {title: '签约|数量', colSpan: '2|1', rowSpan: '1|1', field: 'deal_qty', hAlign: 2, width: 60, type: 'Number', aliasFormat: '{%s}|数量'},
  468. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'deal_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  469. ],
  470. tz_calc: [
  471. {title: '设计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'sgfh_qty', hAlign: 2, width: 60, type: 'Number'},
  472. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'sgfh_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  473. {title: '设计错漏增减|数量', colSpan: '2|1', rowSpan: '1|1', field: 'sjcl_qty', hAlign: 2, width: 60, type: 'Number'},
  474. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'sjcl_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  475. {title: '其他错漏增减|数量', colSpan: '2|1', rowSpan: '1|1', field: 'qtcl_qty', hAlign: 2, width: 60, type: 'Number'},
  476. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'qtcl_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  477. {title: '台账小计|数量', colSpan: '2|1', rowSpan: '1|1', field: 'quantity', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  478. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'total_price', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  479. ],
  480. drawing_code: [{title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'}],
  481. node_type: [{title: '费用类别', colSpan: '1', rowSpan: '2', field: 'node_type', hAlign: 0, width: 100, cellType: 'customizeCombo'}],
  482. memo: [{title: '备注', colSpan: '1', rowSpan: '2', field: 'memo', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  483. ex_memo1: [{title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}, ],
  484. ex_memo2: [{title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}, ],
  485. ex_memo3: [{title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}]
  486. },
  487. pos: {
  488. name: [{title: '计量单元', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 230, formatter: '@'}],
  489. position: [{title: '位置', colSpan: '1', rowSpan: '2', field: 'position', hAlign: 0, width: 60, formatter: '@'}],
  490. tz_calc: [
  491. {title: '台账数量|设计量', colSpan: '4|1', rowSpan: '1|1', field: 'sgfh_qty', hAlign: 2, width: 100, type: 'Number'},
  492. {title: '|设计错漏增减', colSpan: '|1', rowSpan: '|1', field: 'sjcl_qty', hAlign: 2, width: 100, type: 'Number'},
  493. {title: '|其他错漏增减', colSpan: '|1', rowSpan: '|1', field: 'qtcl_qty', hAlign: 2, width: 100, type: 'Number'},
  494. {title: '|小计', colSpan: '|1', rowSpan: '|1', field: 'quantity', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  495. ],
  496. drawing_code: [{title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'}],
  497. node_type: [{title: '费用类别', colSpan: '1', rowSpan: '2', field: 'node_type', hAlign: 0, width: 100, cellType: 'customizeCombo'}],
  498. ex_memo1: [{title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  499. ex_memo2: [{title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  500. ex_memo3: [{title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}]
  501. }
  502. },
  503. Stage: {
  504. bills: {
  505. code: [{title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 145, formatter: '@', readOnly: true, cellType: 'tree'}],
  506. b_code: [{title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 70, formatter: '@', readOnly: true}],
  507. name: [{title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 185, formatter: '@', readOnly: true}],
  508. unit: [{title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 60, formatter: '@', readOnly: true, cellType: 'unit'}],
  509. unit_price: [{title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'}],
  510. tz_calc: [
  511. {title: '台账|数量', colSpan: '2|1', rowSpan: '1|1', field: 'quantity', hAlign: 2, width: 60, readOnly: true, type: 'Number', aliasFormat: '{%s}|数量'},
  512. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'total_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  513. ],
  514. deal_calc: [
  515. {title: '签约|数量', colSpan: '2|1', rowSpan: '1|1', field: 'deal_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number', aliasFormat: '{%s}|数量'},
  516. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'deal_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  517. ],
  518. cur_calc: [
  519. {title: '本期合同计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 60, type: 'Number'},
  520. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'contract_tp', hAlign: 2, width: 60, type: 'Number'},
  521. {title: '本期数量变更|数量', colSpan: '3|1', rowSpan: '1|1', field: 'qc_qty', hAlign: 2, width: 60, type: 'Number'},
  522. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'qc_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  523. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'qc_minus_qty', hAlign: 2, width: 60, type: 'Number'},
  524. {title: '本期补差|原单价', colSpan: '2|1', rowSpan: '1|1', field: 'org_price', hAlign: 2, width: 60, type: 'Number', readOnly: true },
  525. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'pc_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true },
  526. {title: '本期完成计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'gather_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  527. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'gather_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  528. ],
  529. end_calc: [
  530. {title: '截止本期合同计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'end_contract_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  531. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_contract_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  532. {title: '截止本期数量变更|数量', colSpan: '2|1', rowSpan: '1|1', field: 'end_qc_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  533. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_qc_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  534. {title: '截止本期完成计量|数量', colSpan: '3|1', rowSpan: '1|1', field: 'end_gather_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  535. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_gather_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  536. {title: '|完成率(%)', colSpan: '1', rowSpan: '|1', field: 'end_final_1_percent', hAlign: 2, width: 80, readOnly: true, type: 'Number'},
  537. ],
  538. deal_dgn_qty: [
  539. {title: '合同|项目节数量1', colSpan: '2|1', rowSpan: '1|1', field: 'deal_dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  540. {title: '|项目节数量2', colSpan: '|1', rowSpan: '|1', field: 'deal_dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  541. ],
  542. c_dgn_qty: [
  543. {title: '变更|项目节数量1', colSpan: '2|1', rowSpan: '1|1', field: 'c_dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  544. {title: '|项目节数量2', colSpan: '|1', rowSpan: '|1', field: 'c_dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  545. ],
  546. final_dgn_price: [{title: '经济指标', colSpan: '1', rowSpan: '2', field: 'final_dgn_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'},],
  547. is_tp: [{title: '总额计量', colSpan: '1', rowSpan: '2', field: 'is_tp', hAlign: 1, width: 60, cellType: 'checkbox'}],
  548. gxby: [{title: '工序报验', colSpan: '1', rowSpan: '2', field: 'gxby', hAlign: 1, width: 80, formatter: '@', readOnly: true}],
  549. dagl: [{title: '档案管理', colSpan: '1', rowSpan: '2', field: 'dagl', hAlign: 1, width: 80, formatter: '@', readOnly: true}],
  550. drawing_code: [{title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'}],
  551. memo: [{title: '备注', colSpan: '1', rowSpan: '2', field: 'memo', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  552. postil: [{title: '本期批注', colSpan: '1', rowSpan: '2', field: 'postil', hAlign: 0, width: 100, formatter: '@', cellType: 'autoTip'},],
  553. ex_memo1: [{title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  554. ex_memo2: [{title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  555. ex_memo3: [{title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  556. },
  557. pos: {
  558. name: [{title: '计量单元', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 180, formatter: '@', readOnly: true}],
  559. position: [{title: '位置', colSpan: '1', rowSpan: '2', field: 'position', hAlign: 0, width: 60, formatter: '@', readOnly: true}],
  560. tz_calc: [{title: '台账数量', colSpan: '1', rowSpan: '2', field: 'quantity', hAlign: 2, width: 60, formatter: '@', readOnly: true, aliasFormat: '{%s}数量'}],
  561. real_qty: [{title: '现场实际数量', colSpan: '1', rowSpan: '2', field: 'real_qty', hAlign: 2, width: 60, type: 'Number'}],
  562. estimate_qty: [{title: '预计变更数量', colSpan: '1', rowSpan: '2', field: 'estimate_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true}],
  563. cur_calc: [
  564. {title: '本期计量|合同', colSpan: '4|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 60, type: 'Number'},
  565. {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'qc_qty', hAlign: 2, width: 80, type: 'Number'},
  566. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'qc_minus_qty', hAlign: 2, width: 60, type: 'Number'},
  567. {title: '|完成', colSpan: '|1', rowSpan: '|1', field: 'gather_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  568. ],
  569. end_calc: [
  570. {title: '截止本期计量|合同', colSpan: '3|1', rowSpan: '1|1', field: 'end_contract_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  571. {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'end_qc_qty', hAlign: 2, width: 80, type: 'Number', readOnly: true},
  572. {title: '|完成', colSpan: '|1', rowSpan: '|1', field: 'end_gather_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  573. ],
  574. postil: [{title: '本期批注', colSpan: '1', rowSpan: '2', field: 'postil', hAlign: 0, width: 80, formatter: '@', cellType: 'autoTip'},],
  575. drawing_code: [{title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'}],
  576. ex_memo1: [{title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  577. ex_memo2: [{title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  578. ex_memo3: [{title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  579. add_stage_order: [{title: '添加期数', colSpan: '1', rowSpan: '2', field: 'add_stage_order', hAlign:1, width: 80, readOnly: true}],
  580. gxby: [{title: '工序报验', colSpan: '1', rowSpan: '2', field: 'gxby', hAlign: 1, width: 80, formatter: '@', readOnly: true}],
  581. dagl: [{title: '档案管理', colSpan: '1', rowSpan: '2', field: 'dagl', hAlign: 1, width: 80, formatter: '@', readOnly: true}],
  582. }
  583. }
  584. };
  585. const withoutClReplace = {
  586. indexField: 'sgfh_qty',
  587. remove: ['sgfh_qty', 'sgfh_tp', 'sjcl_qty', 'sjcl_tp', 'qtcl_qty', 'qtcl_tp', 'quantity', 'total_price'],
  588. billsCols: [
  589. {title: '设计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'sgfh_qty', hAlign: 2, width: 60, type: 'Number'},
  590. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'sgfh_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  591. ],
  592. posCols: [
  593. {title: '设计量', colSpan: '1', rowSpan: '2', field: 'sgfh_qty', hAlign: 2, width: 120, type: 'Number'},
  594. ],
  595. };
  596. const SpreadSpec = {
  597. gcl_stage_set: {
  598. pos: [
  599. { condition: { key: 'field', value: ['name', 'position'] }, update: { readOnly: false } },
  600. ]
  601. }
  602. };
  603. const withCl = {
  604. ledger: {
  605. cols: [
  606. {title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 145, formatter: '@', cellType: 'tree'},
  607. {title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 70, formatter: '@',},
  608. {title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip',},
  609. {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 185, formatter: '@', },
  610. {title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 50, formatter: '@', cellType: 'unit'},
  611. {title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, type: 'Number',},
  612. {title: '项目节数量|数量1', colSpan: '2|1', rowSpan: '1|1', field: 'dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  613. {title: '|数量2', colSpan: '|1', rowSpan: '|1', field: 'dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  614. {title: '经济指标', colSpan: '1', rowSpan: '2', field: 'dgn_price', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  615. {title: '签约|数量', colSpan: '2|1', rowSpan: '1|1', field: 'deal_qty', hAlign: 2, width: 60, type: 'Number'},
  616. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'deal_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  617. {title: '设计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'sgfh_qty', hAlign: 2, width: 60, type: 'Number'},
  618. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'sgfh_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  619. {title: '设计错漏增减|数量', colSpan: '2|1', rowSpan: '1|1', field: 'sjcl_qty', hAlign: 2, width: 60, type: 'Number'},
  620. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'sjcl_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  621. {title: '其他错漏增减|数量', colSpan: '2|1', rowSpan: '1|1', field: 'qtcl_qty', hAlign: 2, width: 60, type: 'Number'},
  622. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'qtcl_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  623. {title: '台账小计|数量', colSpan: '2|1', rowSpan: '1|1', field: 'quantity', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  624. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'total_price', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  625. {title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'},
  626. {title: '备注', colSpan: '1', rowSpan: '2', field: 'memo', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  627. {title: '费用类别', colSpan: '1', rowSpan: '2', field: 'node_type', hAlign: 0, width: 100, cellType: 'customizeCombo'},
  628. {title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  629. {title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  630. ],
  631. emptyRows: 3,
  632. headRows: 2,
  633. headRowHeight: [25, 25],
  634. defaultRowHeight: 21,
  635. headerFont: '12px 微软雅黑',
  636. font: '12px 微软雅黑',
  637. },
  638. pos: {
  639. cols: [
  640. {title: '计量单元', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 230, formatter: '@'},
  641. {title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  642. {title: '位置', colSpan: '1', rowSpan: '2', field: 'position', hAlign: 0, width: 60, formatter: '@'},
  643. {title: '台账数量|设计量', colSpan: '4|1', rowSpan: '1|1', field: 'sgfh_qty', hAlign: 2, width: 100, type: 'Number'},
  644. {title: '|设计错漏增减', colSpan: '|1', rowSpan: '|1', field: 'sjcl_qty', hAlign: 2, width: 100, type: 'Number'},
  645. {title: '|其他错漏增减', colSpan: '|1', rowSpan: '|1', field: 'qtcl_qty', hAlign: 2, width: 100, type: 'Number'},
  646. {title: '|小计', colSpan: '|1', rowSpan: '|1', field: 'quantity', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  647. {title: '图册号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'},
  648. {title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  649. {title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  650. ],
  651. emptyRows: 3,
  652. headRows: 2,
  653. headRowHeight: [25, 25],
  654. headColWidth: [30],
  655. defaultRowHeight: 21,
  656. headerFont: '12px 微软雅黑',
  657. font: '12px 微软雅黑',
  658. }
  659. };
  660. const withoutCl = {
  661. ledger: {
  662. cols: [
  663. {title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 145, formatter: '@', cellType: 'tree'},
  664. {title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 70, formatter: '@'},
  665. {title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  666. {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 185, formatter: '@'},
  667. {title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 50, formatter: '@', cellType: 'unit'},
  668. {title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, type: 'Number'},
  669. {title: '项目节数量|数量1', colSpan: '2|1', rowSpan: '1|1', field: 'dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  670. {title: '|数量2', colSpan: '|1', rowSpan: '|1', field: 'dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  671. {title: '经济指标', colSpan: '1', rowSpan: '2', field: 'dgn_price', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  672. {title: '签约|数量', colSpan: '2|1', rowSpan: '1|1', field: 'deal_qty', hAlign: 2, width: 60, type: 'Number'},
  673. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'deal_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  674. {title: '设计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'sgfh_qty', hAlign: 2, width: 60, type: 'Number'},
  675. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'sgfh_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  676. {title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'},
  677. {title: '备注', colSpan: '1', rowSpan: '2', field: 'memo', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  678. {title: '费用类别', colSpan: '1', rowSpan: '2', field: 'node_type', hAlign: 0, width: 100, cellType: 'customizeCombo'},
  679. {title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  680. {title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  681. ],
  682. emptyRows: 3,
  683. headRows: 2,
  684. headRowHeight: [25, 25],
  685. defaultRowHeight: 21,
  686. headerFont: '12px 微软雅黑',
  687. font: '12px 微软雅黑',
  688. },
  689. pos: {
  690. cols: [
  691. {title: '计量单元', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 230, formatter: '@'},
  692. {title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  693. {title: '位置', colSpan: '1', rowSpan: '2', field: 'position', hAlign: 0, width: 60, formatter: '@'},
  694. {title: '设计量', colSpan: '1', rowSpan: '1', field: 'sgfh_qty', hAlign: 2, width: 120, type: 'Number'},
  695. {title: '图册号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'},
  696. {title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  697. {title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  698. ],
  699. emptyRows: 3,
  700. headRows: 1,
  701. headRowHeight: [32],
  702. headColWidth: [30],
  703. defaultRowHeight: 21,
  704. headerFont: '12px 微软雅黑',
  705. font: '12px 微软雅黑',
  706. }
  707. };
  708. const withClGcl = {
  709. ledger: {
  710. cols: [
  711. {title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 145, formatter: '@', cellType: 'tree'},
  712. {title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 70, formatter: '@'},
  713. {title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  714. {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 185, formatter: '@'},
  715. {title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 50, formatter: '@', cellType: 'unit'},
  716. {title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, type: 'Number'},
  717. {title: '签约|数量', colSpan: '2|1', rowSpan: '1|1', field: 'deal_qty', hAlign: 2, width: 60, type: 'Number'},
  718. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'deal_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  719. {title: '项目节数量|数量1', colSpan: '2|1', rowSpan: '1|1', field: 'dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  720. {title: '|数量2', colSpan: '|1', rowSpan: '|1', field: 'dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  721. {title: '经济指标', colSpan: '1', rowSpan: '2', field: 'dgn_price', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  722. {title: '设计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'sgfh_qty', hAlign: 2, width: 60, type: 'Number'},
  723. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'sgfh_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  724. {title: '设计错漏增减|数量', colSpan: '2|1', rowSpan: '1|1', field: 'sjcl_qty', hAlign: 2, width: 60, type: 'Number'},
  725. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'sjcl_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  726. {title: '其他错漏增减|数量', colSpan: '2|1', rowSpan: '1|1', field: 'qtcl_qty', hAlign: 2, width: 60, type: 'Number'},
  727. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'qtcl_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  728. {title: '台账小计|数量', colSpan: '2|1', rowSpan: '1|1', field: 'quantity', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  729. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'total_price', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  730. {title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'},
  731. {title: '备注', colSpan: '1', rowSpan: '2', field: 'memo', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  732. {title: '费用类别', colSpan: '1', rowSpan: '2', field: 'node_type', hAlign: 0, width: 100, cellType: 'customizeCombo'},
  733. {title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  734. {title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  735. ],
  736. emptyRows: 3,
  737. headRows: 2,
  738. headRowHeight: [25, 25],
  739. defaultRowHeight: 21,
  740. headerFont: '12px 微软雅黑',
  741. font: '12px 微软雅黑',
  742. }
  743. };
  744. const withoutClGcl = {
  745. ledger: {
  746. cols: [
  747. {title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 145, formatter: '@', cellType: 'tree'},
  748. {title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 70, formatter: '@'},
  749. {title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  750. {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 185, formatter: '@'},
  751. {title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 50, formatter: '@', cellType: 'unit'},
  752. {title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, type: 'Number'},
  753. {title: '签约|数量', colSpan: '2|1', rowSpan: '1|1', field: 'deal_qty', hAlign: 2, width: 60, type: 'Number'},
  754. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'deal_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  755. {title: '项目节数量|数量1', colSpan: '2|1', rowSpan: '1|1', field: 'dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  756. {title: '|数量2', colSpan: '|1', rowSpan: '|1', field: 'dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  757. {title: '经济指标', colSpan: '1', rowSpan: '2', field: 'dgn_price', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  758. {title: '设计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'sgfh_qty', hAlign: 2, width: 60, type: 'Number'},
  759. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'sgfh_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  760. {title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'},
  761. {title: '备注', colSpan: '1', rowSpan: '2', field: 'memo', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  762. {title: '费用类别', colSpan: '1', rowSpan: '2', field: 'node_type', hAlign: 0, width: 100, cellType: 'customizeCombo'},
  763. {title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  764. {title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  765. ],
  766. emptyRows: 3,
  767. headRows: 2,
  768. headRowHeight: [25, 25],
  769. defaultRowHeight: 21,
  770. headerFont: '12px 微软雅黑',
  771. font: '12px 微软雅黑',
  772. }
  773. };
  774. // 期 -- 本期计量台账
  775. const stageTz = {
  776. ledger: {
  777. cols: [
  778. {title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 145, formatter: '@', readOnly: true, cellType: 'tree'},
  779. {title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 70, formatter: '@', readOnly: true},
  780. {title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  781. {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 185, formatter: '@', readOnly: true},
  782. {title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 60, formatter: '@', readOnly: true, cellType: 'unit'},
  783. {title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  784. {title: '台账|数量', colSpan: '2|1', rowSpan: '1|1', field: 'quantity', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  785. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'total_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  786. {title: '本期合同计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 60, type: 'Number'},
  787. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'contract_tp', hAlign: 2, width: 60, type: 'Number'},
  788. {title: '本期数量变更|数量', colSpan: '3|1', rowSpan: '1|1', field: 'qc_qty', hAlign: 2, width: 60, type: 'Number'},
  789. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'qc_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  790. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'qc_minus_qty', hAlign: 2, width: 60, type: 'Number'},
  791. { title: '本期补差|原单价', colSpan: '2|1', rowSpan: '1|1', field: 'org_price', hAlign: 2, width: 60, type: 'Number', readOnly: true },
  792. { title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'pc_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true },
  793. {title: '本期完成计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'gather_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  794. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'gather_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  795. {title: '截止本期合同计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'end_contract_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  796. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_contract_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  797. {title: '截止本期数量变更|数量', colSpan: '2|1', rowSpan: '1|1', field: 'end_qc_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  798. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_qc_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  799. {title: '截止本期完成计量|数量', colSpan: '3|1', rowSpan: '1|1', field: 'end_gather_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  800. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_gather_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  801. {title: '|完成率(%)', colSpan: '1', rowSpan: '|1', field: 'end_final_1_percent', hAlign: 2, width: 80, readOnly: true, type: 'Number'},
  802. {title: '合同|项目节数量1', colSpan: '2|1', rowSpan: '1|1', field: 'deal_dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  803. {title: '|项目节数量2', colSpan: '|1', rowSpan: '|1', field: 'deal_dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  804. {title: '变更|项目节数量1', colSpan: '2|1', rowSpan: '1|1', field: 'c_dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  805. {title: '|项目节数量2', colSpan: '|1', rowSpan: '|1', field: 'c_dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  806. // {title: '预估变更|数量', colSpan: '3|1', rowSpan: '1|1', field: 'due_qc_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  807. // {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'due_qc_minus_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  808. // {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'due_qc_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  809. // {title: '预估决算|数量', colSpan: '2|1', rowSpan: '1|1', field: 'due_final_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  810. // {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'due_final_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  811. {title: '经济指标', colSpan: '1', rowSpan: '2', field: 'final_dgn_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  812. {title: '本期批注', colSpan: '1', rowSpan: '2', field: 'postil', hAlign: 0, width: 100, formatter: '@', cellType: 'autoTip'},
  813. {title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@', readOnly: true},
  814. {title: '备注', colSpan: '1', rowSpan: '2', field: 'memo', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  815. {title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  816. {title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  817. {title: '总额计量', colSpan: '1', rowSpan: '2', field: 'is_tp', hAlign: 1, width: 60, cellType: 'checkbox'},
  818. {title: '工序报验', colSpan: '1', rowSpan: '2', field: 'gxby', hAlign: 1, width: 80, formatter: '@', readOnly: true},
  819. {title: '档案管理', colSpan: '1', rowSpan: '2', field: 'dagl', hAlign: 1, width: 80, formatter: '@', readOnly: true},
  820. ],
  821. emptyRows: 0,
  822. headRows: 2,
  823. headRowHeight: [25, 25],
  824. defaultRowHeight: 21,
  825. headerFont: '12px 微软雅黑',
  826. font: '12px 微软雅黑',
  827. frozenColCount: 5,
  828. frozenLineColor: '#93b5e4',
  829. },
  830. pos: {
  831. cols: [
  832. {title: '计量单元', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 180, formatter: '@', readOnly: true},
  833. {title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  834. {title: '位置', colSpan: '1', rowSpan: '2', field: 'position', hAlign: 0, width: 60, formatter: '@', readOnly: true},
  835. {title: '台账数量', colSpan: '1', rowSpan: '2', field: 'quantity', hAlign: 2, width: 60, formatter: '@', readOnly: true},
  836. {title: '现场实际数量', colSpan: '1', rowSpan: '2', field: 'real_qty', hAlign: 2, width: 60, type: 'Number'},
  837. {title: '预计变更数量', colSpan: '1', rowSpan: '2', field: 'estimate_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  838. {title: '本期计量|合同', colSpan: '4|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 60, type: 'Number'},
  839. {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'qc_qty', hAlign: 2, width: 80, type: 'Number'},
  840. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'qc_minus_qty', hAlign: 2, width: 60, type: 'Number'},
  841. {title: '|完成', colSpan: '|1', rowSpan: '|1', field: 'gather_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  842. {title: '截止本期计量|合同', colSpan: '3|1', rowSpan: '1|1', field: 'end_contract_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  843. {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'end_qc_qty', hAlign: 2, width: 80, type: 'Number', readOnly: true},
  844. {title: '|完成', colSpan: '|1', rowSpan: '|1', field: 'end_gather_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  845. {title: '本期批注', colSpan: '1', rowSpan: '2', field: 'postil', hAlign: 0, width: 80, formatter: '@', cellType: 'autoTip'},
  846. {title: '图册号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'},
  847. {title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  848. {title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  849. {title: '工序报验', colSpan: '1', rowSpan: '2', field: 'gxby', hAlign: 1, width: 80, formatter: '@', readOnly: true},
  850. {title: '档案管理', colSpan: '1', rowSpan: '2', field: 'dagl', hAlign: 1, width: 80, formatter: '@', readOnly: true},
  851. ],
  852. emptyRows: 3,
  853. headRows: 2,
  854. headRowHeight: [25, 25],
  855. headColWidth: [30],
  856. defaultRowHeight: 21,
  857. headerFont: '12px 微软雅黑',
  858. font: '12px 微软雅黑',
  859. }
  860. };
  861. const stageCl = {
  862. ledger: {
  863. cols: [
  864. {title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 145, formatter: '@', readOnly: true, cellType: 'tree'},
  865. {title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 70, formatter: '@', readOnly: true},
  866. {title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  867. {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 185, formatter: '@', readOnly: true},
  868. {title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 60, formatter: '@', readOnly: true, cellType: 'unit'},
  869. {title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  870. {title: '签约|数量', colSpan: '2|1', rowSpan: '1|1', field: 'deal_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  871. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'deal_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  872. {title: '台账|数量', colSpan: '2|1', rowSpan: '1|1', field: 'quantity', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  873. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'total_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  874. {title: '本期合同计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 60, type: 'Number'},
  875. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'contract_tp', hAlign: 2, width: 60, type: 'Number'},
  876. {title: '本期数量变更|数量', colSpan: '3|1', rowSpan: '1|1', field: 'qc_qty', hAlign: 2, width: 60, type: 'Number',},
  877. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'qc_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  878. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'qc_minus_qty', hAlign: 2, width: 60, type: 'Number'},
  879. { title: '本期补差|原单价', colSpan: '2|1', rowSpan: '1|1', field: 'org_price', hAlign: 2, width: 60, type: 'Number', readOnly: true },
  880. { title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'pc_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true },
  881. {title: '本期完成计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'gather_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  882. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'gather_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  883. {title: '截止本期合同计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'end_contract_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  884. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_contract_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  885. {title: '截止本期数量变更|数量', colSpan: '2|1', rowSpan: '1|1', field: 'end_qc_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  886. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_qc_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  887. {title: '截止本期完成计量|数量', colSpan: '3|1', rowSpan: '1|1', field: 'end_gather_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  888. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_gather_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  889. {title: '|完成率(%)', colSpan: '1', rowSpan: '|1', field: 'end_final_1_percent', hAlign: 2, width: 80, readOnly: true, type: 'Number'},
  890. {title: '合同|项目节数量1', colSpan: '2|1', rowSpan: '1|1', field: 'deal_dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  891. {title: '|项目节数量2', colSpan: '|1', rowSpan: '|1', field: 'deal_dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  892. {title: '变更|项目节数量1', colSpan: '2|1', rowSpan: '1|1', field: 'c_dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  893. {title: '|项目节数量2', colSpan: '|1', rowSpan: '|1', field: 'c_dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  894. {title: '经济指标', colSpan: '1', rowSpan: '2', field: 'final_dgn_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  895. {title: '本期批注', colSpan: '1', rowSpan: '2', field: 'postil', hAlign: 0, width: 100, formatter: '@', cellType: 'autoTip'},
  896. {title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@', readOnly: true},
  897. {title: '备注', colSpan: '1', rowSpan: '2', field: 'memo', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  898. {title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  899. {title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  900. {title: '总额计量', colSpan: '1', rowSpan: '2', field: 'is_tp', hAlign: 1, width: 60, cellType: 'checkbox'},
  901. {title: '工序报验', colSpan: '1', rowSpan: '2', field: 'gxby', hAlign: 1, width: 80, formatter: '@', readOnly: true},
  902. {title: '档案管理', colSpan: '1', rowSpan: '2', field: 'dagl', hAlign: 1, width: 80, formatter: '@', readOnly: true},
  903. ],
  904. emptyRows: 0,
  905. headRows: 2,
  906. headRowHeight: [25, 25],
  907. defaultRowHeight: 21,
  908. headerFont: '12px 微软雅黑',
  909. font: '12px 微软雅黑',
  910. frozenColCount: 5,
  911. frozenLineColor: '#93b5e4',
  912. },
  913. pos: {
  914. cols: [
  915. {title: '计量单元', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 180, formatter: '@'},
  916. {title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  917. {title: '位置', colSpan: '1', rowSpan: '2', field: 'position', hAlign: 0, width: 60, formatter: '@'},
  918. {title: '现场实际数量', colSpan: '1', rowSpan: '2', field: 'real_qty', hAlign: 2, width: 60, type: 'Number'},
  919. {title: '预计变更数量', colSpan: '1', rowSpan: '2', field: 'estimate_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  920. {title: '本期计量|合同', colSpan: '4|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 60, type: 'Number'},
  921. {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'qc_qty', hAlign: 2, width: 80, type: 'Number'},
  922. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'qc_minus_qty', hAlign: 2, width: 60, type: 'Number'},
  923. {title: '|完成', colSpan: '|1', rowSpan: '|1', field: 'gather_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  924. {title: '截止本期计量|合同', colSpan: '3|1', rowSpan: '1|1', field: 'end_contract_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  925. {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'end_qc_qty', hAlign: 2, width: 80, type: 'Number', readOnly: true},
  926. {title: '|完成', colSpan: '|1', rowSpan: '|1', field: 'end_gather_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  927. {title: '本期批注', colSpan: '1', rowSpan: '2', field: 'postil', hAlign: 0, width: 80, formatter: '@', cellType: 'autoTip'},
  928. {title: '图册号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'},
  929. {title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  930. {title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  931. {title: '添加期数', colSpan: '1', rowSpan: '2', field: 'add_stage_order', hAlign:1, width: 80, readOnly: true},
  932. {title: '工序报验', colSpan: '1', rowSpan: '2', field: 'gxby', hAlign: 1, width: 80, formatter: '@', readOnly: true},
  933. {title: '档案管理', colSpan: '1', rowSpan: '2', field: 'dagl', hAlign: 1, width: 80, formatter: '@', readOnly: true},
  934. ],
  935. emptyRows: 20,
  936. headRows: 2,
  937. headRowHeight: [25, 25],
  938. headColWidth: [30],
  939. defaultRowHeight: 21,
  940. headerFont: '12px 微软雅黑',
  941. font: '12px 微软雅黑',
  942. }
  943. };
  944. const stageNoCl = {
  945. ledger: {
  946. cols: [
  947. {title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 145, formatter: '@', readOnly: true, cellType: 'tree'},
  948. {title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 70, formatter: '@', readOnly: true},
  949. {title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  950. {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 185, formatter: '@', readOnly: true},
  951. {title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 60, formatter: '@', readOnly: true, cellType: 'unit'},
  952. {title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  953. {title: '签约|数量', colSpan: '2|1', rowSpan: '1|1', field: 'deal_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  954. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'deal_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  955. {title: '台账|数量', colSpan: '2|1', rowSpan: '1|1', field: 'quantity', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  956. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'total_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  957. {title: '本期合同计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 60, type: 'Number'},
  958. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'contract_tp', hAlign: 2, width: 60, type: 'Number'},
  959. {title: '本期数量变更|数量', colSpan: '3|1', rowSpan: '1|1', field: 'qc_qty', hAlign: 2, width: 60, type: 'Number',},
  960. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'qc_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  961. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'qc_minus_qty', hAlign: 2, width: 60, type: 'Number'},
  962. {title: '本期补差|原单价', colSpan: '2|1', rowSpan: '1|1', field: 'org_price', hAlign: 2, width: 60, type: 'Number', readOnly: true },
  963. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'pc_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  964. {title: '本期完成计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'gather_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  965. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'gather_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  966. {title: '截止本期合同计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'end_contract_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  967. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_contract_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  968. {title: '截止本期数量变更|数量', colSpan: '2|1', rowSpan: '1|1', field: 'end_qc_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  969. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_qc_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  970. {title: '截止本期完成计量|数量', colSpan: '3|1', rowSpan: '1|1', field: 'end_gather_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  971. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_gather_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  972. {title: '|完成率(%)', colSpan: '1', rowSpan: '|1', field: 'end_final_1_percent', hAlign: 2, width: 80, readOnly: true, type: 'Number'},
  973. {title: '合同|项目节数量1', colSpan: '2|1', rowSpan: '1|1', field: 'deal_dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  974. {title: '|项目节数量2', colSpan: '|1', rowSpan: '|1', field: 'deal_dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  975. {title: '变更|项目节数量1', colSpan: '2|1', rowSpan: '1|1', field: 'c_dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  976. {title: '|项目节数量2', colSpan: '|1', rowSpan: '|1', field: 'c_dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  977. {title: '经济指标', colSpan: '1', rowSpan: '2', field: 'final_dgn_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  978. {title: '本期批注', colSpan: '1', rowSpan: '2', field: 'postil', hAlign: 0, width: 100, formatter: '@', cellType: 'autoTip'},
  979. {title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@', readOnly: true},
  980. {title: '备注', colSpan: '1', rowSpan: '2', field: 'memo', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  981. {title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  982. {title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  983. {title: '总额计量', colSpan: '1', rowSpan: '2', field: 'is_tp', hAlign: 1, width: 60, cellType: 'checkbox'},
  984. {title: '工序报验', colSpan: '1', rowSpan: '2', field: 'gxby', hAlign: 1, width: 80, formatter: '@', readOnly: true},
  985. {title: '档案管理', colSpan: '1', rowSpan: '2', field: 'dagl', hAlign: 1, width: 80, formatter: '@', readOnly: true},
  986. ],
  987. emptyRows: 0,
  988. headRows: 2,
  989. headRowHeight: [25, 25],
  990. defaultRowHeight: 21,
  991. headerFont: '12px 微软雅黑',
  992. font: '12px 微软雅黑',
  993. frozenColCount: 5,
  994. frozenLineColor: '#93b5e4',
  995. },
  996. pos: {
  997. cols: [
  998. {title: '计量单元', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 180, formatter: '@'},
  999. {title: '位置', colSpan: '1', rowSpan: '2', field: 'position', hAlign: 0, width: 60, formatter: '@'},
  1000. {title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1001. {title: '现场实际数量', colSpan: '1', rowSpan: '2', field: 'real_qty', hAlign: 2, width: 60, type: 'Number'},
  1002. {title: '预计变更数量', colSpan: '1', rowSpan: '2', field: 'estimate_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1003. {title: '本期计量|合同', colSpan: '4|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 60, type: 'Number'},
  1004. {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'qc_qty', hAlign: 2, width: 80, type: 'Number'},
  1005. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'qc_minus_qty', hAlign: 2, width: 60, type: 'Number'},
  1006. {title: '|完成', colSpan: '|1', rowSpan: '|1', field: 'gather_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1007. {title: '截止本期计量|合同', colSpan: '3|1', rowSpan: '1|1', field: 'end_contract_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1008. {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'end_qc_qty', hAlign: 2, width: 80, type: 'Number', readOnly: true},
  1009. {title: '|完成', colSpan: '|1', rowSpan: '|1', field: 'end_gather_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1010. {title: '本期批注', colSpan: '1', rowSpan: '2', field: 'postil', hAlign: 0, width: 80, formatter: '@', cellType: 'autoTip'},
  1011. {title: '图册号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'},
  1012. {title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1013. {title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1014. {title: '添加期数', colSpan: '1', rowSpan: '2', field: 'add_stage_order', hAlign:1, width: 80, readOnly: true},
  1015. {title: '工序报验', colSpan: '1', rowSpan: '2', field: 'gxby', hAlign: 1, width: 80, formatter: '@', readOnly: true},
  1016. {title: '档案管理', colSpan: '1', rowSpan: '2', field: 'dagl', hAlign: 1, width: 80, formatter: '@', readOnly: true},
  1017. ],
  1018. emptyRows: 20,
  1019. headRows: 2,
  1020. headRowHeight: [25, 25],
  1021. headColWidth: [30],
  1022. defaultRowHeight: 21,
  1023. headerFont: '12px 微软雅黑',
  1024. font: '12px 微软雅黑',
  1025. }
  1026. };
  1027. // 期 -- 清单汇总
  1028. const stageGather = {
  1029. gcl: {
  1030. cols: [
  1031. {title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 80, formatter: '@'},
  1032. {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 230, formatter: '@'},
  1033. {title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 60, formatter: '@', cellType: 'unit'},
  1034. {title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, type: 'Number'},
  1035. {title: '签约清单|数量', colSpan: '2|1', rowSpan: '1|1', field: 'deal_bills_qty', hAlign: 2, width: 60, type: 'Number'},
  1036. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'deal_bills_tp', hAlign: 2, width: 60, type: 'Number'},
  1037. {title: '台账|数量', colSpan: '2|1', rowSpan: '1|1', field: 'quantity', hAlign: 2, width: 60, type: 'Number'},
  1038. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'total_price', hAlign: 2, width: 60, type: 'Number'},
  1039. {title: '本期合同计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 60, type: 'Number'},
  1040. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'contract_tp', hAlign: 2, width: 60, type: 'Number'},
  1041. {title: '本期数量变更|数量', colSpan: '2|1', rowSpan: '1|1', field: 'qc_qty', hAlign: 2, width: 60, type: 'Number'},
  1042. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'qc_tp', hAlign: 2, width: 60, type: 'Number'},
  1043. { title: '本期补差|原单价', colSpan: '2|1', rowSpan: '1|1', field: 'org_price', hAlign: 2, width: 60, type: 'Number' },
  1044. { title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'pc_tp', hAlign: 2, width: 60, type: 'Number' },
  1045. {title: '本期完成计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'gather_qty', hAlign: 2, width: 60, type: 'Number'},
  1046. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'gather_tp', hAlign: 2, width: 60, type: 'Number'},
  1047. {title: '截止本期合同计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'end_contract_qty', hAlign: 2, width: 60, type: 'Number'},
  1048. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_contract_tp', hAlign: 2, width: 60, type: 'Number'},
  1049. {title: '截止本期数量变更|数量', colSpan: '2|1', rowSpan: '1|1', field: 'end_qc_qty', hAlign: 2, width: 60, type: 'Number'},
  1050. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_qc_tp', hAlign: 2, width: 60, type: 'Number'},
  1051. {title: '截止本期完成计量|数量', colSpan: '3|1', rowSpan: '1|1', field: 'end_gather_qty', hAlign: 2, width: 60, type: 'Number'},
  1052. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_gather_tp', hAlign: 2, width: 60, type: 'Number'},
  1053. {title: '|完成率(%)', colSpan: '|1', rowSpan: '|1', field: 'end_final_1_percent', hAlign: 2, width: 80, type: 'Number'},
  1054. {title: '台账+变更令|数量', colSpan: '3|1', rowSpan: '1|1', field: 'final_qty', hAlign: 2, width: 60, type: 'Number'},
  1055. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'final_tp', hAlign: 2, width: 60, type: 'Number'},
  1056. {title: '|完成率(%)', colSpan: '|1', rowSpan: '|1', field: 'final_percent', hAlign: 2, width: 80, type: 'Number'},
  1057. ],
  1058. emptyRows: 0,
  1059. headRows: 2,
  1060. headRowHeight: [25, 25],
  1061. headColWidth: [30],
  1062. defaultRowHeight: 21,
  1063. headerFont: '12px 微软雅黑',
  1064. font: '12px 微软雅黑',
  1065. readOnly: true,
  1066. },
  1067. leafXmj: {
  1068. cols: [
  1069. {title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 100, formatter: '@'},
  1070. {title: '台账数量', colSpan: '1', rowSpan: '2', field: 'quantity', hAlign: 2, width: 60, type: 'Number'},
  1071. {title: '本期计量数量|合同', colSpan: '3|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 60, type: 'Number'},
  1072. {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'qc_qty', hAlign: 2, width: 60, type: 'Number'},
  1073. {title: '|完成', colSpan: '|1', rowSpan: '1|1', field: 'gather_qty', hAlign: 2, width: 60, type: 'Number'},
  1074. {title: '截止本期计量数量|合同', colSpan: '4|1', rowSpan: '1|1', field: 'end_contract_qty', hAlign: 2, width: 60, type: 'Number'},
  1075. {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'end_qc_qty', hAlign: 2, width: 60, type: 'Number'},
  1076. {title: '|完成', colSpan: '|1', rowSpan: '|1', field: 'end_gather_qty', hAlign: 2, width: 60, type: 'Number'},
  1077. {title: '|完成率(%)', colSpan: '1', rowSpan: '|1', field: 'end_final_1_percent', hAlign: 2, width: 80, type: 'Number', visible: false},
  1078. {title: '单位工程', colSpan: '1', rowSpan: '2', field: 'dwgc', hAlign: 0, width: 80, formatter: '@'},
  1079. {title: '分部工程', colSpan: '1', rowSpan: '2', field: 'fbgc', hAlign: 0, width: 80, formatter: '@'},
  1080. {title: '分项工程', colSpan: '1', rowSpan: '2', field: 'fxgc', hAlign: 0, width: 80, formatter: '@'},
  1081. {title: '细目', colSpan: '1', rowSpan: '2', field: 'jldy', hAlign: 0, width: 80, formatter: '@'},
  1082. {title: '计量单元', colSpan: '1', rowSpan: '2', field: 'bwmx', hAlign: 0, width: 80, formatter: '@'},
  1083. {title: '图册号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'},
  1084. ],
  1085. emptyRows: 0,
  1086. headRows: 2,
  1087. headRowHeight: [25, 25],
  1088. headColWidth: [30],
  1089. defaultRowHeight: 21,
  1090. headerFont: '12px 微软雅黑',
  1091. font: '12px 微软雅黑',
  1092. readOnly: true,
  1093. }
  1094. };
  1095. // 期 -- 审核比较
  1096. const stageCompare = {
  1097. ledger: {
  1098. baseCols: [
  1099. {title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 150, formatter: '@', cellType: 'tree'},
  1100. {title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 80, formatter: '@'},
  1101. {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 230, formatter: '@'},
  1102. {title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 50, formatter: '@', cellType: 'unit'},
  1103. {title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, type: 'Number'},
  1104. { title: '本期补差|原单价', colSpan: '2|1', rowSpan: '1|1', field: 'org_price', hAlign: 2, width: 60, type: 'Number', },
  1105. { title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'pc_tp', hAlign: 2, width: 60, type: 'Number' },
  1106. ],
  1107. extraCols: [
  1108. {title: '%s|数量', colSpan: '2|1', rowSpan: '1|1', field: 'gather_qty%s', hAlign: 2, width: 60, type: 'Number'},
  1109. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'gather_tp%s', hAlign: 2, width: 60, type: 'Number'},
  1110. ],
  1111. emptyRows: 3,
  1112. headRows: 2,
  1113. headRowHeight: [25, 25],
  1114. defaultRowHeight: 21,
  1115. headerFont: '12px 微软雅黑',
  1116. font: '12px 微软雅黑',
  1117. readOnly: true,
  1118. },
  1119. pos: {
  1120. baseCols: [
  1121. {title: '计量单元', colSpan: '1', rowSpan: '1', field: 'name', hAlign: 0, width: 230, formatter: '@'},
  1122. ],
  1123. extraCols: [
  1124. {title: '%s', colSpan: '1', rowSpan: '1', field: 'gather_qty%s', hAlign: 2, width: 60, type: 'Number'},
  1125. ],
  1126. emptyRows: 3,
  1127. headRows: 1,
  1128. headRowHeight: [32],
  1129. headColWidth: [30],
  1130. defaultRowHeight: 21,
  1131. headerFont: '12px 微软雅黑',
  1132. font: '12px 微软雅黑',
  1133. readOnly: true,
  1134. }
  1135. };
  1136. // 计量台账 - cols需要二次计算得到
  1137. const measure = {
  1138. gather: {},
  1139. compare: {},
  1140. };
  1141. // 计量台账 -- 清单汇总 -- 工程量清单汇总
  1142. measure.gather.billsSpread = {
  1143. cols: [
  1144. {title: '清单编号', colSpan: '1', rowSpan: '1', field: 'b_code', hAlign: 0, width: 120, formatter: '@'},
  1145. {title: '名称', colSpan: '1', rowSpan: '1', field: 'name', hAlign: 0, width: 230, formatter: '@'},
  1146. {title: '单位', colSpan: '1', rowSpan: '1', field: 'unit', hAlign: 0, width: 60, formatter: '@', cellType: 'unit'},
  1147. {title: '单价', colSpan: '1', rowSpan: '1', field: 'unit_price', hAlign: 2, width: 60, type: 'Number'},
  1148. ],
  1149. emptyRows: 0,
  1150. headRows: 1,
  1151. headRowHeight: [32],
  1152. headColWidth: [30],
  1153. defaultRowHeight: 21,
  1154. headerFont: '12px 微软雅黑',
  1155. font: '12px 微软雅黑',
  1156. };
  1157. measure.compare.ledger = {
  1158. cols: [
  1159. {title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 150, formatter: '@', cellType: 'tree'},
  1160. {title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 80, formatter: '@'},
  1161. {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 230, formatter: '@'},
  1162. {title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 50, formatter: '@', cellType: 'unit'},
  1163. {title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, type: 'Number'},
  1164. ],
  1165. emptyRows: 3,
  1166. headRows: 2,
  1167. headRowHeight: [25, 25],
  1168. defaultRowHeight: 21,
  1169. headerFont: '12px 微软雅黑',
  1170. font: '12px 微软雅黑',
  1171. };
  1172. measure.compare.pos = {
  1173. cols: [
  1174. {title: '计量单元', colSpan: '1', rowSpan: '1', field: 'name', hAlign: 0, width: 230, formatter: '@'},
  1175. ],
  1176. emptyRows: 3,
  1177. headRows: 1,
  1178. headRowHeight: [32],
  1179. headColWidth: [30],
  1180. defaultRowHeight: 21,
  1181. headerFont: '12px 微软雅黑',
  1182. font: '12px 微软雅黑',
  1183. };
  1184. const blank = {
  1185. cols: [],
  1186. emptyRows: 0,
  1187. headRows: 2,
  1188. headRowHeight: [32],
  1189. defaultRowHeight: 21,
  1190. headerFont: '12px 微软雅黑',
  1191. font: '12px 微软雅黑',
  1192. };
  1193. module.exports = {
  1194. EmptySpreadSetting,
  1195. BaseSetCol,
  1196. ProjectSpreadTemplate,
  1197. BaseSpreadColSetting,
  1198. SpreadSpec,
  1199. withoutClReplace,
  1200. withCl,
  1201. withoutCl,
  1202. withClGcl,
  1203. withoutClGcl,
  1204. stageTz,
  1205. stageCl,
  1206. stageNoCl,
  1207. stageGather,
  1208. stageCompare,
  1209. filterCols: { dealCols, dgnCols, clCols, stageDgnCols, realCompleteCols, thirdPartyCols, minusNoValueCols, priceDiffCols },
  1210. measure,
  1211. blank,
  1212. };