spread.js 115 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576
  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. wbs_url: ['wbs_url'],
  19. };
  20. const minusNoValueCols = ['qc_minus_qty', 'end_qc_minus_qty'];
  21. // 未定义列的基础spread配置
  22. const EmptySpreadSetting = {
  23. tz_ledger_set: {
  24. bills: {
  25. cols: [],
  26. emptyRows: 3,
  27. headRows: 2,
  28. headRowHeight: [25, 25],
  29. defaultRowHeight: 21,
  30. headerFont: '12px 微软雅黑',
  31. font: '12px 微软雅黑',
  32. frozenLineColor: '#93b5e4',
  33. },
  34. pos: {
  35. cols: [],
  36. emptyRows: 3,
  37. headRows: 2,
  38. headRowHeight: [25, 25],
  39. headColWidth: [30],
  40. defaultRowHeight: 21,
  41. headerFont: '12px 微软雅黑',
  42. font: '12px 微软雅黑',
  43. frozenLineColor: '#93b5e4',
  44. }
  45. },
  46. tz_stage_set: {
  47. bills: {
  48. cols: [],
  49. emptyRows: 0,
  50. headRows: 2,
  51. headRowHeight: [25, 25],
  52. defaultRowHeight: 21,
  53. headerFont: '12px 微软雅黑',
  54. font: '12px 微软雅黑',
  55. frozenColCount: 5,
  56. frozenLineColor: '#93b5e4',
  57. },
  58. pos: {
  59. cols: [],
  60. emptyRows: 3,
  61. headRows: 2,
  62. headRowHeight: [25, 25],
  63. headColWidth: [30],
  64. defaultRowHeight: 21,
  65. headerFont: '12px 微软雅黑',
  66. font: '12px 微软雅黑',
  67. frozenLineColor: '#93b5e4',
  68. }
  69. },
  70. gcl_ledger_set:{
  71. bills: {
  72. cols: [],
  73. emptyRows: 3,
  74. headRows: 2,
  75. headRowHeight: [25, 25],
  76. defaultRowHeight: 21,
  77. headerFont: '12px 微软雅黑',
  78. font: '12px 微软雅黑',
  79. frozenLineColor: '#93b5e4',
  80. },
  81. pos: {
  82. cols: [],
  83. emptyRows: 3,
  84. headRows: 2,
  85. headRowHeight: [25, 25],
  86. headColWidth: [30],
  87. defaultRowHeight: 21,
  88. headerFont: '12px 微软雅黑',
  89. font: '12px 微软雅黑',
  90. frozenLineColor: '#93b5e4',
  91. }
  92. },
  93. gcl_stage_set: {
  94. bills: {
  95. cols: [],
  96. emptyRows: 0,
  97. headRows: 2,
  98. headRowHeight: [25, 25],
  99. defaultRowHeight: 21,
  100. headerFont: '12px 微软雅黑',
  101. font: '12px 微软雅黑',
  102. frozenColCount: 5,
  103. frozenLineColor: '#93b5e4',
  104. },
  105. pos: {
  106. cols: [],
  107. emptyRows: 3,
  108. headRows: 2,
  109. headRowHeight: [25, 25],
  110. headColWidth: [30],
  111. defaultRowHeight: 21,
  112. headerFont: '12px 微软雅黑',
  113. font: '12px 微软雅黑',
  114. frozenLineColor: '#93b5e4',
  115. }
  116. },
  117. };
  118. // 可设置列集合
  119. const BaseSetCol = {
  120. tz_ledger_set: [
  121. { key: 'code', name: '项目节编号', fixed: ['move', 'valid', 'alias'], bills: 1, pos: 0, },
  122. { key: 'b_code', name: '清单编号', fixed: ['alias'], bills: 1, pos: 0, },
  123. { key: 'ex_memo1', name: '备注1', fixed: [], bills: 1, pos: 1, },
  124. { key: 'name', name: '名称/计量单元', fixed: ['alias'], bills: 1, pos: 1 },
  125. { key: 'features', name: '项目特征', fixed: ['alias'], bills: 1, pos: 0 },
  126. { key: 'position', name: '位置', fixed: [], bills: 0, pos: 1 },
  127. { key: 'unit', name: '单位', fixed: ['alias'], bills: 1, pos: 0 },
  128. { key: 'unit_price', name: '单价', fixed: ['alias'], bills: 1, pos: 0 },
  129. { key: 'dgn_qty', name: '项目节数量', fixed: [], bills: 1, pos: 0, },
  130. { key: 'dgn_price', name: '经济指标', fixed: ['alias'], bills: 1, pos: 0},
  131. { key: 'deal_calc', name: '签约', fixed: [], bills: 1, pos: 0, },
  132. { key: 'tz_calc', name: '台账', fixed: ['alias'], bills: 1, pos: 1, },
  133. { key: 'drawing_code', name: '图册号', fixed: ['alias'], bills: 1, pos: 1 },
  134. { key: 'node_type', name: '费用类别', fixed: ['alias'], bills: 1, pos: 0 },
  135. { key: 'is_new_price', name: '新增单价', fixed: [], bills: 1, pos: 0 },
  136. { key: 'memo', name: '备注', fixed: ['alias'], bills: 1, pos: 0 },
  137. { key: 'ex_memo2', name: '备注2', fixed: [], bills: 1, pos: 1, },
  138. { key: 'ex_memo3', name: '备注3', fixed: [], bills: 1, pos: 1, },
  139. { key: 'ex_calc1', name: '计算1', fixed: [], bills: 1, pos: 1, },
  140. { key: 'from', name: '来源', fixed: ['alias'], bills: 1, pos: 1, },
  141. ],
  142. tz_stage_set: [
  143. { key: 'code', name: '项目节编号', fixed: ['move', 'valid', 'alias'], bills: 1, pos: 0 },
  144. { key: 'b_code', name: '清单编号', fixed: ['alias'], bills: 1, pos: 0 },
  145. { key: 'ex_memo1', name: '备注1', fixed: [], bills: 1, pos: 1, },
  146. { key: 'name', name: '名称/计量单元', fixed: ['alias'], bills: 1, pos: 1 },
  147. { key: 'features', name: '项目特征', fixed: ['alias'], bills: 1, pos: 0 },
  148. { key: 'position', name: '位置', fixed: [], bills: 0, pos: 1},
  149. { key: 'unit', name: '单位', fixed: ['alias'], bills: 1, pos: 0 },
  150. { key: 'unit_price', name: '单价', fixed: ['alias'], bills: 1, pos: 0 },
  151. { key: 'deal_calc', name: '签约', fixed: [], bills: 1, pos: 0 },
  152. { key: 'tz_calc', name: '台账', fixed: [], bills: 1, pos: 1},
  153. { key: 'tz2_calc', name: '变更后', fixed: [], bills: 1, pos: 1},
  154. { key: 'real_qty', name: '现场实际数量', fixed: ['valid', 'alias'], bills: 0, pos: 1},
  155. { key: 'estimate_qty', name: '预计变更数量', fixed: ['valid', 'alias'], bills: 0, pos: 1},
  156. { key: 'cur_calc', name: '本期计量', fixed: ['alias'], bills: 1, pos: 1, },
  157. { key: 'end_calc', name: '截止本期计量', fixed: ['alias'], bills: 1, pos: 1, },
  158. { key: 'deal_dgn_qty', name: '合同-项目节数量', fixed: ['alias'], bills: 1, pos: 0, },
  159. { key: 'c_dgn_qty', name: '变更-项目节数量', fixed: ['alias'], bills: 1, pos: 0, },
  160. { key: 'final_dgn_price', name: '经济指标', fixed: [], bills: 1, pos: 0 },
  161. { key: 'postil', name: '本期批注', fixed: [], bills: 1, pos: 1 },
  162. { key: 'drawing_code', name: '图册号', fixed: [], bills: 1, pos: 1 },
  163. { key: 'memo', name: '备注', fixed: [], bills: 1, pos: 0 },
  164. { key: 'ex_memo2', name: '备注2', fixed: [], bills: 1, pos: 1, },
  165. { key: 'ex_memo3', name: '备注3', fixed: [], bills: 1, pos: 1, },
  166. { key: 'is_tp', name: '总额计量', fixed: [], bills: 1, pos: 0 },
  167. { key: 'gxby', name: '工序报验', fixed: ['valid', 'alias'], bills: 1, pos: 1, },
  168. { key: 'dagl', name: '档案管理', fixed: ['valid', 'alias'], bills: 1, pos: 1, },
  169. { key: 'wbs_url', name: '3方链接', fixed: ['valid', 'alias'], bills: 1, pos: 1, init: 1 },
  170. { key: 'ex_calc1', name: '计算1', fixed: [], bills: 1, pos: 1, },
  171. { key: 'cur_ex_calc1', name: '本期计算1', fixed: [], bills: 1, pos: 1, },
  172. { key: 'end_ex_calc1', name: '截止本期计算1', fixed: [], bills: 1, pos: 1, },
  173. ],
  174. gcl_ledger_set: [
  175. { key: 'code', name: '项目节编号', fixed: ['move', 'valid', 'alias'], bills: 1, pos: 0, },
  176. { key: 'b_code', name: '清单编号', fixed: ['alias'], bills: 1, pos: 0, },
  177. { key: 'ex_memo1', name: '备注1', fixed: [], bills: 1, pos: 1, },
  178. { key: 'name', name: '名称/计量单元', fixed: ['alias'], bills: 1, pos: 1 },
  179. { key: 'features', name: '项目特征', fixed: ['alias'], bills: 1, pos: 0 },
  180. { key: 'position', name: '位置', fixed: [], bills: 0, pos: 1 },
  181. { key: 'unit', name: '单位', fixed: ['alias'], bills: 1, pos: 0 },
  182. { key: 'unit_price', name: '单价', fixed: ['alias'], bills: 1, pos: 0 },
  183. { key: 'dgn_qty', name: '项目节数量', fixed: [], bills: 1, pos: 0, },
  184. { key: 'dgn_price', name: '经济指标', fixed: ['alias'], bills: 1, pos: 0},
  185. { key: 'deal_calc', name: '签约', fixed: [], bills: 1, pos: 0, },
  186. { key: 'tz_calc', name: '台账', fixed: ['alias'], bills: 1, pos: 1, },
  187. { key: 'drawing_code', name: '图册号', fixed: ['alias'], bills: 1, pos: 1 },
  188. { key: 'node_type', name: '费用类别', fixed: ['alias'], bills: 1, pos: 0 },
  189. { key: 'is_new_price', name: '新增单价', fixed: [], bills: 1, pos: 0 },
  190. { key: 'memo', name: '备注', fixed: ['alias'], bills: 1, pos: 0 },
  191. { key: 'ex_memo2', name: '备注2', fixed: [], bills: 1, pos: 1, },
  192. { key: 'ex_memo3', name: '备注3', fixed: [], bills: 1, pos: 1, },
  193. { key: 'ex_calc1', name: '计算1', fixed: [], bills: 1, pos: 1, },
  194. { key: 'from', name: '来源', fixed: ['alias'], bills: 1, pos: 1, },
  195. ],
  196. gcl_stage_set: [
  197. { key: 'code', name: '项目节编号', fixed: ['move', 'valid', 'alias'], bills: 1, pos: 0 },
  198. { key: 'b_code', name: '清单编号', fixed: ['alias'], bills: 1, pos: 0 },
  199. { key: 'ex_memo1', name: '备注1', fixed: [], bills: 1, pos: 1, },
  200. { key: 'name', name: '名称/计量单元', fixed: ['alias'], bills: 1, pos: 1 },
  201. { key: 'features', name: '项目特征', fixed: ['alias'], bills: 1, pos: 0 },
  202. { key: 'position', name: '位置', fixed: [], bills: 0, pos: 1},
  203. { key: 'unit', name: '单位', fixed: ['alias'], bills: 1, pos: 0 },
  204. { key: 'unit_price', name: '单价', fixed: ['alias'], bills: 1, pos: 0 },
  205. { key: 'deal_calc', name: '签约', fixed: [], bills: 1, pos: 0 },
  206. { key: 'tz_calc', name: '台账', fixed: [], bills: 1, pos: 1},
  207. { key: 'tz2_calc', name: '变更后', fixed: [], bills: 1, pos: 1},
  208. { key: 'real_qty', name: '现场实际数量', fixed: ['valid', 'alias'], bills: 0, pos: 1},
  209. { key: 'estimate_qty', name: '预计变更数量', fixed: ['valid', 'alias'], bills: 0, pos: 1},
  210. { key: 'cur_calc', name: '本期计量', fixed: ['alias'], bills: 1, pos: 1, },
  211. { key: 'end_calc', name: '截止本期计量', fixed: ['alias'], bills: 1, pos: 1, },
  212. { key: 'deal_dgn_qty', name: '合同-项目节数量', fixed: ['alias'], bills: 1, pos: 0, },
  213. { key: 'c_dgn_qty', name: '变更-项目节数量', fixed: ['alias'], bills: 1, pos: 0, },
  214. { key: 'final_dgn_price', name: '经济指标', fixed: [], bills: 1, pos: 0 },
  215. { key: 'postil', name: '本期批注', fixed: [], bills: 1, pos: 1 },
  216. { key: 'drawing_code', name: '图册号', fixed: [], bills: 1, pos: 1 },
  217. { key: 'memo', name: '备注', fixed: [], bills: 1, pos: 0 },
  218. { key: 'ex_memo2', name: '备注2', fixed: [], bills: 1, pos: 1, },
  219. { key: 'ex_memo3', name: '备注3', fixed: [], bills: 1, pos: 1, },
  220. { key: 'add_stage_order', name: '添加期数', fixed: [], bills: 0, pos: 1, },
  221. { key: 'is_tp', name: '总额计量', fixed: [], bills: 1, pos: 0 },
  222. { key: 'gxby', name: '工序报验', fixed: ['valid', 'alias'], bills: 1, pos: 1, },
  223. { key: 'dagl', name: '档案管理', fixed: ['valid', 'alias'], bills: 1, pos: 1, },
  224. { key: 'wbs_url', name: '3方链接', fixed: ['valid', 'alias'], bills: 1, pos: 1, init: 1 },
  225. { key: 'ex_calc1', name: '计算1', fixed: [], bills: 1, pos: 1, },
  226. { key: 'cur_ex_calc1', name: '本期计算1', fixed: [], bills: 1, pos: 1, },
  227. { key: 'end_ex_calc1', name: '截止本期计算1', fixed: [], bills: 1, pos: 1, },
  228. ],
  229. };
  230. // 默认的列设置
  231. const glSpreadTemplate = {
  232. tz_ledger_set: [
  233. { key: 'code', valid: 1 },
  234. { key: 'b_code', valid: 1 },
  235. { key: 'ex_memo1', valid: 0 },
  236. { key: 'name', valid: 1 },
  237. { key: 'features', valid: 0 },
  238. { key: 'position', valid: 1 },
  239. { key: 'unit', valid: 1 },
  240. { key: 'unit_price', valid: 1 },
  241. { key: 'dgn_qty', valid: 1 },
  242. { key: 'dgn_price', valid: 1 },
  243. { key: 'deal_calc', valid: 0, },
  244. { key: 'tz_calc', valid: 1 },
  245. { key: 'drawing_code', valid: 1 },
  246. { key: 'node_type', valid: 1 },
  247. { key: 'is_new_price', valid: 0},
  248. { key: 'memo', valid: 1 },
  249. { key: 'ex_memo2', valid: 0 },
  250. { key: 'ex_memo3', valid: 0 },
  251. { key: 'ex_calc1', valid: 0 },
  252. { key: 'from', valid: 0 },
  253. ],
  254. tz_stage_set: [
  255. { key: 'code', valid: 1 },
  256. { key: 'b_code', valid: 1 },
  257. { key: 'ex_memo1', valid: 0 },
  258. { key: 'name', valid: 1 },
  259. { key: 'features', valid: 0 },
  260. { key: 'position', valid: 1 },
  261. { key: 'unit', valid: 1 },
  262. { key: 'unit_price', valid: 1 },
  263. { key: 'deal_calc', valid: 0, },
  264. { key: 'tz_calc', valid: 1 },
  265. { key: 'tz2_calc', valid: 0 },
  266. { key: 'real_qty', valid: 1 },
  267. { key: 'estimate_qty', valid: 1 },
  268. { key: 'cur_calc', valid: 1 },
  269. { key: 'end_calc', valid: 1 },
  270. { key: 'deal_dgn_qty', valid: 1 },
  271. { key: 'c_dgn_qty', valid: 1 },
  272. { key: 'final_dgn_price', valid: 1 },
  273. { key: 'postil', valid: 1},
  274. { key: 'drawing_code', valid: 1 },
  275. { key: 'memo', valid: 1 },
  276. { key: 'ex_memo2', valid: 0 },
  277. { key: 'ex_memo3', valid: 0 },
  278. { key: 'is_tp', valid: 1},
  279. { key: 'gxby', valid: 1},
  280. { key: 'dagl', valid: 1},
  281. { key: 'wbs_url', valid: 1 },
  282. { key: 'ex_calc1', valid: 0 },
  283. { key: 'cur_ex_calc1', valid: 0 },
  284. { key: 'end_ex_calc1', valid: 0 },
  285. ],
  286. gcl_ledger_set: [
  287. { key: 'code', valid: 1 },
  288. { key: 'b_code', valid: 1 },
  289. { key: 'ex_memo1', valid: 0 },
  290. { key: 'name', valid: 1 },
  291. { key: 'features', valid: 0 },
  292. { key: 'position', valid: 1 },
  293. { key: 'unit', valid: 1 },
  294. { key: 'unit_price', valid: 1 },
  295. { key: 'dgn_qty', valid: 1 },
  296. { key: 'dgn_price', valid: 1 },
  297. { key: 'deal_calc', valid: 1, },
  298. { key: 'tz_calc', valid: 1 },
  299. { key: 'drawing_code', valid: 1 },
  300. { key: 'node_type', valid: 1 },
  301. { key: 'is_new_price', valid: 0},
  302. { key: 'memo', valid: 1 },
  303. { key: 'ex_memo2', valid: 0 },
  304. { key: 'ex_memo3', valid: 0 },
  305. { key: 'ex_calc1', valid: 0 },
  306. { key: 'from', valid: 0 },
  307. ],
  308. gcl_stage_set: [
  309. { key: 'code', valid: 1 },
  310. { key: 'b_code', valid: 1 },
  311. { key: 'ex_memo1', valid: 0 },
  312. { key: 'name', valid: 1 },
  313. { key: 'features', valid: 0 },
  314. { key: 'position', valid: 1 },
  315. { key: 'unit', valid: 1 },
  316. { key: 'unit_price', valid: 1 },
  317. { key: 'deal_calc', valid: 1, },
  318. { key: 'tz_calc', valid: 1, pos_valid: 0 },
  319. { key: 'tz2_calc', valid: 0 },
  320. { key: 'real_qty', valid: 1 },
  321. { key: 'estimate_qty', valid: 1 },
  322. { key: 'cur_calc', valid: 1 },
  323. { key: 'end_calc', valid: 1 },
  324. { key: 'deal_dgn_qty', valid: 1 },
  325. { key: 'c_dgn_qty', valid: 1 },
  326. { key: 'final_dgn_price', valid: 1 },
  327. { key: 'postil', valid: 1},
  328. { key: 'drawing_code', valid: 1 },
  329. { key: 'memo', valid: 1 },
  330. { key: 'ex_memo2', valid: 0 },
  331. { key: 'ex_memo3', valid: 0 },
  332. { key: 'is_tp', valid: 1},
  333. { key: 'add_stage_order', valid: 1},
  334. { key: 'gxby', valid: 1},
  335. { key: 'dagl', valid: 1},
  336. { key: 'wbs_url', valid: 1 },
  337. { key: 'ex_calc1', valid: 0 },
  338. { key: 'cur_ex_calc1', valid: 0 },
  339. { key: 'end_ex_calc1', valid: 0 },
  340. ],
  341. };
  342. const szSpreadTemplate = {
  343. tz_ledger_set: [
  344. { key: 'code', valid: 1 },
  345. { key: 'b_code', valid: 1 },
  346. { key: 'ex_memo1', valid: 0 },
  347. { key: 'name', valid: 1 },
  348. { key: 'features', valid: 1 },
  349. { key: 'position', valid: 1 },
  350. { key: 'unit', valid: 1 },
  351. { key: 'unit_price', valid: 1 },
  352. { key: 'dgn_qty', valid: 1 },
  353. { key: 'dgn_price', valid: 1 },
  354. { key: 'deal_calc', valid: 0, },
  355. { key: 'tz_calc', valid: 1 },
  356. { key: 'drawing_code', valid: 1 },
  357. { key: 'node_type', valid: 1 },
  358. { key: 'is_new_price', valid: 0},
  359. { key: 'memo', valid: 1 },
  360. { key: 'ex_memo2', valid: 0 },
  361. { key: 'ex_memo3', valid: 0 },
  362. { key: 'ex_calc1', valid: 0 },
  363. { key: 'from', valid: 0 },
  364. ],
  365. tz_stage_set: [
  366. { key: 'code', valid: 1 },
  367. { key: 'b_code', valid: 1 },
  368. { key: 'ex_memo1', valid: 0 },
  369. { key: 'name', valid: 1 },
  370. { key: 'features', valid: 1 },
  371. { key: 'position', valid: 1 },
  372. { key: 'unit', valid: 1 },
  373. { key: 'unit_price', valid: 1 },
  374. { key: 'deal_calc', valid: 0, },
  375. { key: 'tz_calc', valid: 1 },
  376. { key: 'tz2_calc', valid: 0 },
  377. { key: 'real_qty', valid: 1 },
  378. { key: 'estimate_qty', valid: 1 },
  379. { key: 'cur_calc', valid: 1 },
  380. { key: 'end_calc', valid: 1 },
  381. { key: 'deal_dgn_qty', valid: 1 },
  382. { key: 'c_dgn_qty', valid: 1 },
  383. { key: 'final_dgn_price', valid: 1 },
  384. { key: 'postil', valid: 1},
  385. { key: 'drawing_code', valid: 1 },
  386. { key: 'memo', valid: 1 },
  387. { key: 'ex_memo2', valid: 0 },
  388. { key: 'ex_memo3', valid: 0 },
  389. { key: 'is_tp', valid: 1},
  390. { key: 'gxby', valid: 1},
  391. { key: 'dagl', valid: 1},
  392. { key: 'wbs_url', valid: 1 },
  393. { key: 'ex_calc1', valid: 0 },
  394. { key: 'cur_ex_calc1', valid: 0 },
  395. { key: 'end_ex_calc1', valid: 0 },
  396. ],
  397. gcl_ledger_set: [
  398. { key: 'code', valid: 1 },
  399. { key: 'b_code', valid: 1 },
  400. { key: 'ex_memo1', valid: 0 },
  401. { key: 'name', valid: 1 },
  402. { key: 'features', valid: 1 },
  403. { key: 'position', valid: 1 },
  404. { key: 'unit', valid: 1 },
  405. { key: 'unit_price', valid: 1 },
  406. { key: 'dgn_qty', valid: 1 },
  407. { key: 'dgn_price', valid: 1 },
  408. { key: 'deal_calc', valid: 1, },
  409. { key: 'tz_calc', valid: 1 },
  410. { key: 'drawing_code', valid: 1 },
  411. { key: 'node_type', valid: 1 },
  412. { key: 'is_new_price', valid: 0},
  413. { key: 'memo', valid: 1 },
  414. { key: 'ex_memo2', valid: 0 },
  415. { key: 'ex_memo3', valid: 0 },
  416. { key: 'ex_calc1', valid: 0 },
  417. { key: 'from', valid: 0 },
  418. ],
  419. gcl_stage_set: [
  420. { key: 'code', valid: 1 },
  421. { key: 'b_code', valid: 1 },
  422. { key: 'ex_memo1', valid: 0 },
  423. { key: 'name', valid: 1 },
  424. { key: 'features', valid: 1 },
  425. { key: 'position', valid: 1 },
  426. { key: 'unit', valid: 1 },
  427. { key: 'unit_price', valid: 1 },
  428. { key: 'deal_calc', valid: 0, },
  429. { key: 'tz_calc', valid: 1 },
  430. { key: 'tz2_calc', valid: 0 },
  431. { key: 'real_qty', valid: 1 },
  432. { key: 'estimate_qty', valid: 1 },
  433. { key: 'cur_calc', valid: 1 },
  434. { key: 'end_calc', valid: 1 },
  435. { key: 'deal_dgn_qty', valid: 1 },
  436. { key: 'c_dgn_qty', valid: 1 },
  437. { key: 'final_dgn_price', valid: 1 },
  438. { key: 'postil', valid: 1},
  439. { key: 'drawing_code', valid: 1 },
  440. { key: 'memo', valid: 1 },
  441. { key: 'ex_memo2', valid: 0 },
  442. { key: 'ex_memo3', valid: 0 },
  443. { key: 'is_tp', valid: 1},
  444. { key: 'add_stage_order', valid: 1},
  445. { key: 'gxby', valid: 1},
  446. { key: 'dagl', valid: 1},
  447. { key: 'wbs_url', valid: 1 },
  448. { key: 'ex_calc1', valid: 0 },
  449. { key: 'cur_ex_calc1', valid: 0 },
  450. { key: 'end_ex_calc1', valid: 0 },
  451. ],
  452. };
  453. const fjSpreadTemplate = {
  454. tz_ledger_set: [
  455. { key: 'code', valid: 1 },
  456. { key: 'b_code', valid: 1 },
  457. { key: 'ex_memo1', valid: 0 },
  458. { key: 'name', valid: 1 },
  459. { key: 'features', valid: 1 },
  460. { key: 'position', valid: 1 },
  461. { key: 'unit', valid: 1 },
  462. { key: 'unit_price', valid: 1 },
  463. { key: 'dgn_qty', valid: 1 },
  464. { key: 'dgn_price', valid: 1 },
  465. { key: 'deal_calc', valid: 0, },
  466. { key: 'tz_calc', valid: 1 },
  467. { key: 'drawing_code', valid: 1 },
  468. { key: 'node_type', valid: 1 },
  469. { key: 'is_new_price', valid: 0},
  470. { key: 'memo', valid: 1 },
  471. { key: 'ex_memo2', valid: 0 },
  472. { key: 'ex_memo3', valid: 0 },
  473. { key: 'ex_calc1', valid: 0 },
  474. { key: 'from', valid: 0 },
  475. ],
  476. tz_stage_set: [
  477. { key: 'code', valid: 1 },
  478. { key: 'b_code', valid: 1 },
  479. { key: 'ex_memo1', valid: 0 },
  480. { key: 'name', valid: 1 },
  481. { key: 'features', valid: 1 },
  482. { key: 'position', valid: 1 },
  483. { key: 'unit', valid: 1 },
  484. { key: 'unit_price', valid: 1 },
  485. { key: 'deal_calc', valid: 0, },
  486. { key: 'tz_calc', valid: 1 },
  487. { key: 'tz2_calc', valid: 0 },
  488. { key: 'real_qty', valid: 1 },
  489. { key: 'estimate_qty', valid: 1 },
  490. { key: 'cur_calc', valid: 1 },
  491. { key: 'end_calc', valid: 1 },
  492. { key: 'deal_dgn_qty', valid: 1 },
  493. { key: 'c_dgn_qty', valid: 1 },
  494. { key: 'final_dgn_price', valid: 1 },
  495. { key: 'postil', valid: 1},
  496. { key: 'drawing_code', valid: 1 },
  497. { key: 'memo', valid: 1 },
  498. { key: 'ex_memo2', valid: 0 },
  499. { key: 'ex_memo3', valid: 0 },
  500. { key: 'is_tp', valid: 1},
  501. { key: 'gxby', valid: 1},
  502. { key: 'dagl', valid: 1},
  503. { key: 'wbs_url', valid: 1 },
  504. { key: 'ex_calc1', valid: 0 },
  505. { key: 'cur_ex_calc1', valid: 0 },
  506. { key: 'end_ex_calc1', valid: 0 },
  507. ],
  508. gcl_ledger_set: [
  509. { key: 'code', valid: 1 },
  510. { key: 'b_code', valid: 1 },
  511. { key: 'ex_memo1', valid: 0 },
  512. { key: 'name', valid: 1 },
  513. { key: 'features', valid: 1 },
  514. { key: 'position', valid: 1 },
  515. { key: 'unit', valid: 1 },
  516. { key: 'unit_price', valid: 1 },
  517. { key: 'dgn_qty', valid: 1 },
  518. { key: 'dgn_price', valid: 1 },
  519. { key: 'deal_calc', valid: 1, },
  520. { key: 'tz_calc', valid: 1 },
  521. { key: 'drawing_code', valid: 1 },
  522. { key: 'node_type', valid: 1 },
  523. { key: 'is_new_price', valid: 0},
  524. { key: 'memo', valid: 1 },
  525. { key: 'ex_memo2', valid: 0 },
  526. { key: 'ex_memo3', valid: 0 },
  527. { key: 'ex_calc1', valid: 0 },
  528. { key: 'from', valid: 0 },
  529. ],
  530. gcl_stage_set: [
  531. { key: 'code', valid: 1 },
  532. { key: 'b_code', valid: 1 },
  533. { key: 'ex_memo1', valid: 0 },
  534. { key: 'name', valid: 1 },
  535. { key: 'features', valid: 1 },
  536. { key: 'position', valid: 1 },
  537. { key: 'unit', valid: 1 },
  538. { key: 'unit_price', valid: 1 },
  539. { key: 'deal_calc', valid: 0, },
  540. { key: 'tz_calc', valid: 1 },
  541. { key: 'tz2_calc', valid: 0 },
  542. { key: 'real_qty', valid: 1 },
  543. { key: 'estimate_qty', valid: 1 },
  544. { key: 'cur_calc', valid: 1 },
  545. { key: 'end_calc', valid: 1 },
  546. { key: 'deal_dgn_qty', valid: 1 },
  547. { key: 'c_dgn_qty', valid: 1 },
  548. { key: 'final_dgn_price', valid: 1 },
  549. { key: 'postil', valid: 1},
  550. { key: 'drawing_code', valid: 1 },
  551. { key: 'memo', valid: 1 },
  552. { key: 'ex_memo2', valid: 0 },
  553. { key: 'ex_memo3', valid: 0 },
  554. { key: 'is_tp', valid: 1},
  555. { key: 'add_stage_order', valid: 1},
  556. { key: 'gxby', valid: 1},
  557. { key: 'dagl', valid: 1},
  558. { key: 'wbs_url', valid: 1 },
  559. { key: 'ex_calc1', valid: 0 },
  560. { key: 'cur_ex_calc1', valid: 0 },
  561. { key: 'end_ex_calc1', valid: 0 },
  562. ],
  563. };
  564. const ProjectSpreadTemplate = [
  565. { code: 'gl', name: '公路', template: glSpreadTemplate, isDefault: 1 },
  566. { code: 'sz', name: '市政', template: szSpreadTemplate },
  567. { code: 'fj', name: '房建', template: fjSpreadTemplate },
  568. { code: 'xxby', name: '养护', template: glSpreadTemplate },
  569. ];
  570. const BaseSpreadColSetting = {
  571. tz_ledger_set: {
  572. bills: {
  573. code: [{title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 145, formatter: '@', cellType: 'tree'}],
  574. b_code: [{title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 70, formatter: '@',}],
  575. name: [{title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 185, formatter: '@', }],
  576. // features: [{title: '项目特征', colSpan: '1', rowSpan: '2', field: 'features', hAlign: 0, width: 185, formatter: '@', cellType: 'ellipsisAutoTip' }],
  577. features: [{title: '项目特征', colSpan: '1', rowSpan: '2', field: 'features', hAlign: 0, width: 185, formatter: '@', wordWrap: true, }],
  578. unit: [{title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 50, formatter: '@', cellType: 'unit'}],
  579. unit_price: [{title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, type: 'Number',}],
  580. dgn_qty: [
  581. {title: '项目节数量|数量1', colSpan: '2|1', rowSpan: '1|1', field: 'dgn_qty1', hAlign: 2, width: 60, type: 'Number', aliasFormat: '{%s}|数量1'},
  582. {title: '|数量2', colSpan: '|1', rowSpan: '|1', field: 'dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  583. ],
  584. dgn_price: [{title: '经济指标', colSpan: '1', rowSpan: '2', field: 'dgn_price', hAlign: 2, width: 60, type: 'Number', readOnly: true}],
  585. deal_calc: [
  586. {title: '签约|数量', colSpan: '2|1', rowSpan: '1|1', field: 'deal_qty', hAlign: 2, width: 60, type: 'Number', aliasFormat: '{%s}|数量'},
  587. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'deal_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  588. ],
  589. tz_calc: [
  590. {title: '设计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'sgfh_qty', hAlign: 2, width: 60, type: 'Number'},
  591. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'sgfh_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  592. {title: '设计错漏增减|数量', colSpan: '2|1', rowSpan: '1|1', field: 'sjcl_qty', hAlign: 2, width: 60, type: 'Number'},
  593. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'sjcl_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  594. {title: '其他错漏增减|数量', colSpan: '2|1', rowSpan: '1|1', field: 'qtcl_qty', hAlign: 2, width: 60, type: 'Number'},
  595. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'qtcl_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  596. {title: '台账小计|数量', colSpan: '2|1', rowSpan: '1|1', field: 'quantity', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  597. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'total_price', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  598. ],
  599. drawing_code: [{title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@', textIndent: 1}],
  600. node_type: [{title: '费用类别', colSpan: '1', rowSpan: '2', field: 'node_type', hAlign: 0, width: 100, cellType: 'customizeCombo'}],
  601. memo: [{title: '备注', colSpan: '1', rowSpan: '2', field: 'memo', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  602. ex_memo1: [{title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}, ],
  603. ex_memo2: [{title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}, ],
  604. ex_memo3: [{title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  605. ex_calc1: [
  606. {title: '计算1|数量', colSpan: '2|1', rowSpan: '1|1', field: 'ex_qty1', hAlign: 2, width: 60, type: 'Number', aliasFormat: '{%s}|数量'},
  607. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'ex_tp1', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  608. ],
  609. from: [{title: '来源', colSpan: '1', rowSpan: '2', field: 'from', hAlign: 1, width: 50, formatter: '@'}],
  610. is_new_price: [{ title: '新增单价', colSpan: '1', rowSpan: '2', field: 'is_new_price', hAlign: 1, width: 60, cellType: 'checkbox' }],
  611. },
  612. pos: {
  613. name: [{title: '计量单元', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 230, formatter: '@'}],
  614. position: [{title: '位置', colSpan: '1', rowSpan: '2', field: 'position', hAlign: 0, width: 60, formatter: '@'}],
  615. tz_calc: [
  616. {title: '台账数量|设计量', colSpan: '5|1', rowSpan: '1|1', field: 'sgfh_qty', hAlign: 2, width: 100, type: 'Number'},
  617. {title: '|设计量公式', colSpan: '|1', rowSpan: '|1', field: 'sgfh_expr', hAlign: 0, width: 100},
  618. {title: '|设计错漏增减', colSpan: '|1', rowSpan: '|1', field: 'sjcl_qty', hAlign: 2, width: 100, type: 'Number'},
  619. {title: '|其他错漏增减', colSpan: '|1', rowSpan: '|1', field: 'qtcl_qty', hAlign: 2, width: 100, type: 'Number'},
  620. {title: '|小计', colSpan: '|1', rowSpan: '|1', field: 'quantity', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  621. ],
  622. drawing_code: [{title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@', textIndent: 1}],
  623. ex_memo1: [{title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  624. ex_memo2: [{title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  625. ex_memo3: [{title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  626. ex_calc1: [{title: '计算1数量', colSpan: '1', rowSpan: '2', field: 'ex_qty1', hAlign: 2, width: 100, type: 'Number', aliasFormat: '{%s}数量'}],
  627. from: [{title: '来源', colSpan: '1', rowSpan: '2', field: 'from', hAlign: 1, width: 50, formatter: '@'}],
  628. }
  629. },
  630. tz_stage_set: {
  631. bills: {
  632. code: [{title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 145, formatter: '@', readOnly: true, cellType: 'tree'}],
  633. b_code: [{title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 70, formatter: '@', readOnly: true}],
  634. name: [{title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 185, formatter: '@', readOnly: true}],
  635. // features: [{title: '项目特征', colSpan: '1', rowSpan: '2', field: 'features', hAlign: 0, width: 185, formatter: '@', readOnly: true, cellType: 'ellipsisAutoTip' }],
  636. features: [{title: '项目特征', colSpan: '1', rowSpan: '2', field: 'features', hAlign: 0, width: 185, formatter: '@', readOnly: true, wordWrap: true, }],
  637. unit: [{title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 60, formatter: '@', readOnly: true, cellType: 'unit'}],
  638. unit_price: [{title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'}],
  639. tz_calc: [
  640. {title: '台账|数量', colSpan: '2|1', rowSpan: '1|1', field: 'quantity', hAlign: 2, width: 60, readOnly: true, type: 'Number', aliasFormat: '{%s}|数量'},
  641. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'total_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  642. ],
  643. tz2_calc: [
  644. {title: '变更后|数量', colSpan: '2|1', rowSpan: '1|1', field: 'tz2_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number', aliasFormat: '{%s}|数量'},
  645. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'tz2_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  646. ],
  647. deal_calc: [
  648. {title: '签约|数量', colSpan: '2|1', rowSpan: '1|1', field: 'deal_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number', aliasFormat: '{%s}|数量'},
  649. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'deal_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  650. ],
  651. cur_calc: [
  652. {title: '本期合同计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 60, type: 'Number'},
  653. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'contract_tp', hAlign: 2, width: 60, type: 'Number'},
  654. {title: '本期数量变更|数量', colSpan: '3|1', rowSpan: '1|1', field: 'qc_qty', hAlign: 2, width: 60, type: 'Number'},
  655. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'qc_tp', hAlign: 2, width: 60, type: 'Number'},
  656. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'qc_minus_qty', hAlign: 2, width: 60, type: 'Number'},
  657. {title: '本期补差|原单价', colSpan: '2|1', rowSpan: '1|1', field: 'org_price', hAlign: 2, width: 60, type: 'Number', readOnly: true },
  658. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'pc_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true },
  659. {title: '本期完成计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'gather_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  660. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'gather_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  661. ],
  662. end_calc: [
  663. {title: '截止本期合同计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'end_contract_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  664. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_contract_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  665. {title: '截止本期数量变更|数量', colSpan: '3|1', rowSpan: '1|1', field: 'end_qc_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  666. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_qc_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  667. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'end_qc_minus_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  668. {title: '截止本期完成计量|数量', colSpan: '3|1', rowSpan: '1|1', field: 'end_gather_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  669. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_gather_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  670. {title: '|完成率(%)', colSpan: '1', rowSpan: '|1', field: 'end_final_1_percent', hAlign: 2, width: 80, readOnly: true, type: 'Number'},
  671. ],
  672. deal_dgn_qty: [
  673. {title: '合同|项目节数量1', colSpan: '2|1', rowSpan: '1|1', field: 'deal_dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  674. {title: '|项目节数量2', colSpan: '|1', rowSpan: '|1', field: 'deal_dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  675. ],
  676. c_dgn_qty: [
  677. {title: '变更|项目节数量1', colSpan: '2|1', rowSpan: '1|1', field: 'c_dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  678. {title: '|项目节数量2', colSpan: '|1', rowSpan: '|1', field: 'c_dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  679. ],
  680. final_dgn_price: [{title: '经济指标', colSpan: '1', rowSpan: '2', field: 'final_dgn_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'},],
  681. is_tp: [{title: '总额计量', colSpan: '1', rowSpan: '2', field: 'is_tp', hAlign: 1, width: 60, cellType: 'checkbox'}],
  682. gxby: [{title: '工序报验', colSpan: '1', rowSpan: '2', field: 'gxby', hAlign: 1, width: 80, formatter: '@', readOnly: true}],
  683. dagl: [{title: '档案管理', colSpan: '1', rowSpan: '2', field: 'dagl', hAlign: 1, width: 80, formatter: '@', readOnly: true}],
  684. wbs_url: [{ title: '3方链接', colSpan: '1', rowSpan: '2', field: 'wbs_url', hAlign: 0, width: 60, formatter: '@', readOnly: true }],
  685. drawing_code: [{title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@', textIndent: 1}],
  686. node_type: [{title: '费用类别', colSpan: '1', rowSpan: '2', field: 'node_type', hAlign: 0, width: 100, cellType: 'customizeCombo'}],
  687. memo: [{title: '备注', colSpan: '1', rowSpan: '2', field: 'memo', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  688. postil: [{title: '本期批注', colSpan: '1', rowSpan: '2', field: 'postil', hAlign: 0, width: 100, formatter: '@', cellType: 'autoTip'},],
  689. ex_memo1: [{title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  690. ex_memo2: [{title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  691. ex_memo3: [{title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  692. ex_calc1: [
  693. {title: '计算1|数量', colSpan: '2|1', rowSpan: '1|1', field: 'ex_qty1', hAlign: 2, width: 60, type: 'Number', readOnly: true, aliasFormat: '{%s}|数量'},
  694. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'ex_tp1', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  695. ],
  696. cur_ex_calc1: [
  697. {title: '本期计算1|数量', colSpan: '2|1', rowSpan: '1|1', field: 'ex_stage_qty1', hAlign: 2, width: 60, type: 'Number', aliasFormat: '{%s}|数量'},
  698. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'ex_stage_tp1', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  699. ],
  700. end_ex_calc1: [
  701. {title: '截止本期计量1|数量', colSpan: '2|1', rowSpan: '1|1', field: 'end_ex_stage_qty1', hAlign: 2, width: 60, type: 'Number', readOnly: true, aliasFormat: '{%s}|数量'},
  702. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_ex_stage_tp1', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  703. ],
  704. },
  705. pos: {
  706. name: [{title: '计量单元', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 180, formatter: '@', readOnly: true}],
  707. position: [{title: '位置', colSpan: '1', rowSpan: '2', field: 'position', hAlign: 0, width: 60, formatter: '@', readOnly: true}],
  708. tz_calc: [{title: '台账数量', colSpan: '1', rowSpan: '2', field: 'quantity', hAlign: 2, width: 60, formatter: '@', readOnly: true, aliasFormat: '{%s}数量'}],
  709. tz2_calc: [{title: '变更后台账数量', colSpan: '1', rowSpan: '2', field: 'tz2_qty', hAlign: 2, width: 60, formatter: '@', readOnly: true, aliasFormat: '{%s}数量'}],
  710. real_qty: [{title: '现场实际数量', colSpan: '1', rowSpan: '2', field: 'real_qty', hAlign: 2, width: 60, type: 'Number'}],
  711. estimate_qty: [{title: '预计变更数量', colSpan: '1', rowSpan: '2', field: 'estimate_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true}],
  712. cur_calc: [
  713. {title: '本期计量|合同', colSpan: '5|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 60, type: 'Number'},
  714. {title: '|合同公式', colSpan: '|1', rowSpan: '|1', field: 'contract_expr', hAlign: 0, width: 100},
  715. {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'qc_qty', hAlign: 2, width: 80, type: 'Number'},
  716. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'qc_minus_qty', hAlign: 2, width: 60, type: 'Number'},
  717. {title: '|完成', colSpan: '|1', rowSpan: '|1', field: 'gather_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  718. ],
  719. end_calc: [
  720. {title: '截止本期计量|合同', colSpan: '5|1', rowSpan: '1|1', field: 'end_contract_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  721. {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'end_qc_qty', hAlign: 2, width: 80, type: 'Number', readOnly: true},
  722. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'end_qc_minus_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  723. {title: '|完成', colSpan: '|1', rowSpan: '|1', field: 'end_gather_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  724. {title: '|合同完成率(%)', colSpan: '|1', rowSpan: '|1', field: 'end_contract_percent', hAlign: 2, width: 65, readOnly: true, type: 'Number'},
  725. ],
  726. postil: [{title: '本期批注', colSpan: '1', rowSpan: '2', field: 'postil', hAlign: 0, width: 80, formatter: '@', cellType: 'autoTip'},],
  727. drawing_code: [{title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@', textIndent: 1}],
  728. ex_memo1: [{title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  729. ex_memo2: [{title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  730. ex_memo3: [{title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  731. add_stage_order: [{title: '添加期数', colSpan: '1', rowSpan: '2', field: 'add_stage_order', hAlign:1, width: 80, readOnly: true}],
  732. gxby: [{title: '工序报验', colSpan: '1', rowSpan: '2', field: 'gxby', hAlign: 0, width: 80, formatter: '@', readOnly: true}],
  733. dagl: [{title: '档案管理', colSpan: '1', rowSpan: '2', field: 'dagl', hAlign: 0, width: 80, formatter: '@', readOnly: true}],
  734. wbs_url: [{ title: '3方链接', colSpan: '1', rowSpan: '2', field: 'wbs_url', hAlign: 0, width: 60, formatter: '@', readOnly: true }],
  735. ex_calc1: [{title: '计算1数量', colSpan: '1', rowSpan: '2', field: 'ex_qty1', hAlign: 2, width: 100, type: 'Number', readOnly: true, aliasFormat: '{%s}数量'}],
  736. cur_ex_calc1: [{title: '本期计量1数量', colSpan: '1', rowSpan: '2', field: 'ex_stage_qty1', hAlign: 2, width: 100, type: 'Number', aliasFormat: '{%s}数量'}],
  737. end_ex_calc1: [{title: '截止本期计量1数量', colSpan: '1', rowSpan: '2', field: 'end_ex_stage_qty1', hAlign: 2, width: 100, type: 'Number', readOnly: true, aliasFormat: '{%s}数量'}],
  738. }
  739. },
  740. gcl_ledger_set: {
  741. bills: {
  742. code: [{title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 145, formatter: '@', cellType: 'tree'}],
  743. b_code: [{title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 70, formatter: '@',}],
  744. name: [{title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 185, formatter: '@', }],
  745. // features: [{title: '项目特征', colSpan: '1', rowSpan: '2', field: 'features', hAlign: 0, width: 185, formatter: '@', cellType: 'ellipsisAutoTip' }],
  746. features: [{title: '项目特征', colSpan: '1', rowSpan: '2', field: 'features', hAlign: 0, width: 185, formatter: '@', wordWrap: true, }],
  747. unit: [{title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 50, formatter: '@', cellType: 'unit'}],
  748. unit_price: [{title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, type: 'Number',}],
  749. dgn_qty: [
  750. {title: '项目节数量|数量1', colSpan: '2|1', rowSpan: '1|1', field: 'dgn_qty1', hAlign: 2, width: 60, type: 'Number', aliasFormat: '{%s}|数量1'},
  751. {title: '|数量2', colSpan: '|1', rowSpan: '|1', field: 'dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  752. ],
  753. dgn_price: [{title: '经济指标', colSpan: '1', rowSpan: '2', field: 'dgn_price', hAlign: 2, width: 60, type: 'Number', readOnly: true}],
  754. deal_calc: [
  755. {title: '签约|数量', colSpan: '2|1', rowSpan: '1|1', field: 'deal_qty', hAlign: 2, width: 60, type: 'Number', aliasFormat: '{%s}|数量'},
  756. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'deal_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  757. ],
  758. tz_calc: [
  759. {title: '设计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'sgfh_qty', hAlign: 2, width: 60, type: 'Number'},
  760. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'sgfh_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  761. {title: '设计错漏增减|数量', colSpan: '2|1', rowSpan: '1|1', field: 'sjcl_qty', hAlign: 2, width: 60, type: 'Number'},
  762. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'sjcl_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  763. {title: '其他错漏增减|数量', colSpan: '2|1', rowSpan: '1|1', field: 'qtcl_qty', hAlign: 2, width: 60, type: 'Number'},
  764. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'qtcl_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  765. {title: '台账小计|数量', colSpan: '2|1', rowSpan: '1|1', field: 'quantity', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  766. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'total_price', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  767. ],
  768. drawing_code: [{title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@', textIndent: 1}],
  769. node_type: [{title: '费用类别', colSpan: '1', rowSpan: '2', field: 'node_type', hAlign: 0, width: 100, cellType: 'customizeCombo'}],
  770. memo: [{title: '备注', colSpan: '1', rowSpan: '2', field: 'memo', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  771. ex_memo1: [{title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}, ],
  772. ex_memo2: [{title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}, ],
  773. ex_memo3: [{title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  774. ex_calc1: [
  775. {title: '计算1|数量', colSpan: '2|1', rowSpan: '1|1', field: 'ex_qty1', hAlign: 2, width: 60, type: 'Number', aliasFormat: '{%s}|数量'},
  776. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'ex_tp1', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  777. ],
  778. from: [{title: '来源', colSpan: '1', rowSpan: '2', field: 'from', hAlign: 1, width: 50, formatter: '@'}],
  779. is_new_price: [{ title: '新增单价', colSpan: '1', rowSpan: '2', field: 'is_new_price', hAlign: 1, width: 60, cellType: 'checkbox' }],
  780. },
  781. pos: {
  782. name: [{title: '计量单元', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 230, formatter: '@'}],
  783. position: [{title: '位置', colSpan: '1', rowSpan: '2', field: 'position', hAlign: 0, width: 60, formatter: '@'}],
  784. tz_calc: [
  785. {title: '台账数量|设计量', colSpan: '5|1', rowSpan: '1|1', field: 'sgfh_qty', hAlign: 2, width: 100, type: 'Number'},
  786. {title: '|设计量公式', colSpan: '|1', rowSpan: '|1', field: 'sgfh_expr', hAlign: 0, width: 100},
  787. {title: '|设计错漏增减', colSpan: '|1', rowSpan: '|1', field: 'sjcl_qty', hAlign: 2, width: 100, type: 'Number'},
  788. {title: '|其他错漏增减', colSpan: '|1', rowSpan: '|1', field: 'qtcl_qty', hAlign: 2, width: 100, type: 'Number'},
  789. {title: '|小计', colSpan: '|1', rowSpan: '|1', field: 'quantity', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  790. ],
  791. drawing_code: [{title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@', textIndent: 1}],
  792. ex_memo1: [{title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  793. ex_memo2: [{title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  794. ex_memo3: [{title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  795. ex_calc1: [{title: '计算1数量', colSpan: '1', rowSpan: '2', field: 'ex_qty1', hAlign: 2, width: 100, type: 'Number', aliasFormat: '{%s}数量'}],
  796. from: [{title: '来源', colSpan: '1', rowSpan: '2', field: 'from', hAlign: 1, width: 50, formatter: '@'}],
  797. }
  798. },
  799. gcl_stage_set: {
  800. bills: {
  801. code: [{title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 145, formatter: '@', readOnly: true, cellType: 'tree'}],
  802. b_code: [{title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 70, formatter: '@', readOnly: true}],
  803. name: [{title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 185, formatter: '@', readOnly: true}],
  804. // features: [{title: '项目特征', colSpan: '1', rowSpan: '2', field: 'features', hAlign: 0, width: 185, formatter: '@', readOnly: true, cellType: 'ellipsisAutoTip' }],
  805. features: [{title: '项目特征', colSpan: '1', rowSpan: '2', field: 'features', hAlign: 0, width: 185, formatter: '@', readOnly: true, wordWrap: true, }],
  806. unit: [{title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 60, formatter: '@', readOnly: true, cellType: 'unit'}],
  807. unit_price: [{title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'}],
  808. tz_calc: [
  809. {title: '台账|数量', colSpan: '2|1', rowSpan: '1|1', field: 'quantity', hAlign: 2, width: 60, readOnly: true, type: 'Number', aliasFormat: '{%s}|数量'},
  810. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'total_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  811. ],
  812. tz2_calc: [
  813. {title: '变更后|数量', colSpan: '2|1', rowSpan: '1|1', field: 'tz2_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number', aliasFormat: '{%s}|数量'},
  814. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'tz2_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  815. ],
  816. deal_calc: [
  817. {title: '签约|数量', colSpan: '2|1', rowSpan: '1|1', field: 'deal_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number', aliasFormat: '{%s}|数量'},
  818. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'deal_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  819. ],
  820. cur_calc: [
  821. {title: '本期合同计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 60, type: 'Number'},
  822. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'contract_tp', hAlign: 2, width: 60, type: 'Number'},
  823. {title: '本期数量变更|数量', colSpan: '3|1', rowSpan: '1|1', field: 'qc_qty', hAlign: 2, width: 60, type: 'Number'},
  824. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'qc_tp', hAlign: 2, width: 60, type: 'Number'},
  825. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'qc_minus_qty', hAlign: 2, width: 60, type: 'Number'},
  826. {title: '本期补差|原单价', colSpan: '2|1', rowSpan: '1|1', field: 'org_price', hAlign: 2, width: 60, type: 'Number', readOnly: true },
  827. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'pc_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true },
  828. {title: '本期完成计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'gather_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  829. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'gather_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  830. ],
  831. end_calc: [
  832. {title: '截止本期合同计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'end_contract_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  833. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_contract_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  834. {title: '截止本期数量变更|数量', colSpan: '3|1', rowSpan: '1|1', field: 'end_qc_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  835. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_qc_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  836. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'end_qc_minus_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  837. {title: '截止本期完成计量|数量', colSpan: '3|1', rowSpan: '1|1', field: 'end_gather_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  838. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_gather_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  839. {title: '|完成率(%)', colSpan: '1', rowSpan: '|1', field: 'end_final_1_percent', hAlign: 2, width: 80, readOnly: true, type: 'Number'},
  840. ],
  841. deal_dgn_qty: [
  842. {title: '合同|项目节数量1', colSpan: '2|1', rowSpan: '1|1', field: 'deal_dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  843. {title: '|项目节数量2', colSpan: '|1', rowSpan: '|1', field: 'deal_dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  844. ],
  845. c_dgn_qty: [
  846. {title: '变更|项目节数量1', colSpan: '2|1', rowSpan: '1|1', field: 'c_dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  847. {title: '|项目节数量2', colSpan: '|1', rowSpan: '|1', field: 'c_dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  848. ],
  849. final_dgn_price: [{title: '经济指标', colSpan: '1', rowSpan: '2', field: 'final_dgn_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'},],
  850. is_tp: [{title: '总额计量', colSpan: '1', rowSpan: '2', field: 'is_tp', hAlign: 1, width: 60, cellType: 'checkbox'}],
  851. gxby: [{title: '工序报验', colSpan: '1', rowSpan: '2', field: 'gxby', hAlign: 0, width: 80, formatter: '@', readOnly: true}],
  852. dagl: [{title: '档案管理', colSpan: '1', rowSpan: '2', field: 'dagl', hAlign: 0, width: 80, formatter: '@', readOnly: true}],
  853. wbs_url: [{ title: '3方链接', colSpan: '1', rowSpan: '2', field: 'wbs_url', hAlign: 0, width: 60, formatter: '@', readOnly: true }],
  854. drawing_code: [{title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@', textIndent: 1}],
  855. memo: [{title: '备注', colSpan: '1', rowSpan: '2', field: 'memo', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  856. node_type: [{title: '费用类别', colSpan: '1', rowSpan: '2', field: 'node_type', hAlign: 0, width: 100, cellType: 'customizeCombo'}],
  857. postil: [{title: '本期批注', colSpan: '1', rowSpan: '2', field: 'postil', hAlign: 0, width: 100, formatter: '@', cellType: 'autoTip'},],
  858. ex_memo1: [{title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  859. ex_memo2: [{title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  860. ex_memo3: [{title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  861. ex_calc1: [
  862. {title: '计算1|数量', colSpan: '2|1', rowSpan: '1|1', field: 'ex_qty1', hAlign: 2, width: 60, type: 'Number', readOnly: true, aliasFormat: '{%s}|数量'},
  863. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'ex_tp1', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  864. ],
  865. cur_ex_calc1: [
  866. {title: '本期计算1|数量', colSpan: '2|1', rowSpan: '1|1', field: 'ex_stage_qty1', hAlign: 2, width: 60, type: 'Number', aliasFormat: '{%s}|数量'},
  867. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'ex_stage_tp1', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  868. ],
  869. end_ex_calc1: [
  870. {title: '截止本期计量1|数量', colSpan: '2|1', rowSpan: '1|1', field: 'end_ex_stage_qty1', hAlign: 2, width: 60, type: 'Number', readOnly: true, aliasFormat: '{%s}|数量'},
  871. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_ex_stage_tp1', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  872. ],
  873. },
  874. pos: {
  875. name: [{title: '计量单元', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 180, formatter: '@'}],
  876. position: [{title: '位置', colSpan: '1', rowSpan: '2', field: 'position', hAlign: 0, width: 60, formatter: '@'}],
  877. real_qty: [{title: '现场实际数量', colSpan: '1', rowSpan: '2', field: 'real_qty', hAlign: 2, width: 60, type: 'Number'}],
  878. estimate_qty: [{title: '预计变更数量', colSpan: '1', rowSpan: '2', field: 'estimate_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true}],
  879. tz_calc: [{title: '台账数量', colSpan: '1', rowSpan: '2', field: 'sgfh_qty', hAlign: 2, width: 60, type: 'Number', aliasFormat: '{%s}数量'}],
  880. tz2_calc: [{title: '变更后台账数量', colSpan: '1', rowSpan: '2', field: 'tz2_qty', hAlign: 2, width: 60, formatter: '@', readOnly: true, aliasFormat: '{%s}数量'}],
  881. cur_calc: [
  882. {title: '本期计量|合同', colSpan: '5|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 60, type: 'Number'},
  883. {title: '|合同公式', colSpan: '|1', rowSpan: '|1', field: 'contract_expr', hAlign: 0, width: 100},
  884. {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'qc_qty', hAlign: 2, width: 80, type: 'Number'},
  885. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'qc_minus_qty', hAlign: 2, width: 60, type: 'Number'},
  886. {title: '|完成', colSpan: '|1', rowSpan: '|1', field: 'gather_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  887. ],
  888. end_calc: [
  889. {title: '截止本期计量|合同', colSpan: '5|1', rowSpan: '1|1', field: 'end_contract_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  890. {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'end_qc_qty', hAlign: 2, width: 80, type: 'Number', readOnly: true},
  891. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'end_qc_minus_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  892. {title: '|完成', colSpan: '|1', rowSpan: '|1', field: 'end_gather_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  893. {title: '|合同完成率(%)', colSpan: '|1', rowSpan: '|1', field: 'end_contract_percent', hAlign: 2, width: 65, readOnly: true, type: 'Number'},
  894. ],
  895. postil: [{title: '本期批注', colSpan: '1', rowSpan: '2', field: 'postil', hAlign: 0, width: 80, formatter: '@', cellType: 'autoTip'},],
  896. drawing_code: [{title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@', textIndent: 1}],
  897. ex_memo1: [{title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  898. ex_memo2: [{title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  899. ex_memo3: [{title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'}],
  900. add_stage_order: [{title: '添加期数', colSpan: '1', rowSpan: '2', field: 'add_stage_order', hAlign:1, width: 80, readOnly: true}],
  901. gxby: [{title: '工序报验', colSpan: '1', rowSpan: '2', field: 'gxby', hAlign: 0, width: 80, formatter: '@', readOnly: true}],
  902. dagl: [{title: '档案管理', colSpan: '1', rowSpan: '2', field: 'dagl', hAlign: 0, width: 80, formatter: '@', readOnly: true}],
  903. wbs_url: [{ title: '3方链接', colSpan: '1', rowSpan: '2', field: 'wbs_url', hAlign: 0, width: 60, formatter: '@', readOnly: true }],
  904. ex_calc1: [{title: '计算1数量', colSpan: '1', rowSpan: '2', field: 'ex_qty1', hAlign: 2, width: 100, type: 'Number', aliasFormat: '{%s}数量'}],
  905. cur_ex_calc1: [{title: '本期计量1数量', colSpan: '1', rowSpan: '2', field: 'ex_stage_qty1', hAlign: 2, width: 100, type: 'Number', aliasFormat: '{%s}数量'}],
  906. end_ex_calc1: [{title: '截止本期计量1数量', colSpan: '1', rowSpan: '2', field: 'end_ex_stage_qty1', hAlign: 2, width: 100, type: 'Number', readOnly: true, aliasFormat: '{%s}数量'}],
  907. }
  908. },
  909. };
  910. const withoutClReplace = {
  911. indexField: 'sgfh_qty',
  912. remove: ['sgfh_qty', 'sgfh_expr', 'sgfh_tp', 'sjcl_qty', 'sjcl_tp', 'qtcl_qty', 'qtcl_tp', 'quantity', 'total_price'],
  913. billsCols: [
  914. {title: '设计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'sgfh_qty', hAlign: 2, width: 60, type: 'Number'},
  915. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'sgfh_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  916. ],
  917. posCols: [
  918. {title: '台账数量|设计量', colSpan: '2|1', rowSpan: '1|1', field: 'sgfh_qty', hAlign: 2, width: 100, type: 'Number'},
  919. {title: '|设计量公式', colSpan: '|1', rowSpan: '|1', field: 'sgfh_expr', hAlign: 2, width: 100},
  920. ],
  921. };
  922. const SpreadSpec = {
  923. gcl_stage_set: {
  924. pos: [
  925. { condition: { key: 'field', value: ['name', 'position'] }, update: { readOnly: false } },
  926. ],
  927. }
  928. };
  929. const SpecSpreadColFields = [
  930. { key: 'ex_memo1', fields: ['ex_memo1'] },
  931. { key: 'ex_memo2', fields: ['ex_memo2'] },
  932. { key: 'ex_memo3', fields: ['ex_memo3'] },
  933. ];
  934. const withCl = {
  935. ledger: {
  936. cols: [
  937. {title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 145, formatter: '@', cellType: 'tree'},
  938. {title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 70, formatter: '@',},
  939. {title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip',},
  940. {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 185, formatter: '@', },
  941. {title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 50, formatter: '@', cellType: 'unit'},
  942. {title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, type: 'Number',},
  943. {title: '项目节数量|数量1', colSpan: '2|1', rowSpan: '1|1', field: 'dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  944. {title: '|数量2', colSpan: '|1', rowSpan: '|1', field: 'dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  945. {title: '经济指标', colSpan: '1', rowSpan: '2', field: 'dgn_price', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  946. {title: '签约|数量', colSpan: '2|1', rowSpan: '1|1', field: 'deal_qty', hAlign: 2, width: 60, type: 'Number'},
  947. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'deal_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  948. {title: '设计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'sgfh_qty', hAlign: 2, width: 60, type: 'Number'},
  949. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'sgfh_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  950. {title: '设计错漏增减|数量', colSpan: '2|1', rowSpan: '1|1', field: 'sjcl_qty', hAlign: 2, width: 60, type: 'Number'},
  951. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'sjcl_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  952. {title: '其他错漏增减|数量', colSpan: '2|1', rowSpan: '1|1', field: 'qtcl_qty', hAlign: 2, width: 60, type: 'Number'},
  953. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'qtcl_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  954. {title: '台账小计|数量', colSpan: '2|1', rowSpan: '1|1', field: 'quantity', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  955. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'total_price', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  956. {title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'},
  957. {title: '备注', colSpan: '1', rowSpan: '2', field: 'memo', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  958. {title: '费用类别', colSpan: '1', rowSpan: '2', field: 'node_type', hAlign: 0, width: 100, cellType: 'customizeCombo'},
  959. {title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  960. {title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  961. ],
  962. emptyRows: 3,
  963. headRows: 2,
  964. headRowHeight: [25, 25],
  965. defaultRowHeight: 21,
  966. headerFont: '12px 微软雅黑',
  967. font: '12px 微软雅黑',
  968. },
  969. pos: {
  970. cols: [
  971. {title: '计量单元', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 230, formatter: '@'},
  972. {title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  973. {title: '位置', colSpan: '1', rowSpan: '2', field: 'position', hAlign: 0, width: 60, formatter: '@'},
  974. {title: '台账数量|设计量', colSpan: '4|1', rowSpan: '1|1', field: 'sgfh_qty', hAlign: 2, width: 100, type: 'Number'},
  975. {title: '|设计错漏增减', colSpan: '|1', rowSpan: '|1', field: 'sjcl_qty', hAlign: 2, width: 100, type: 'Number'},
  976. {title: '|其他错漏增减', colSpan: '|1', rowSpan: '|1', field: 'qtcl_qty', hAlign: 2, width: 100, type: 'Number'},
  977. {title: '|小计', colSpan: '|1', rowSpan: '|1', field: 'quantity', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  978. {title: '图册号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'},
  979. {title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  980. {title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  981. ],
  982. emptyRows: 3,
  983. headRows: 2,
  984. headRowHeight: [25, 25],
  985. headColWidth: [30],
  986. defaultRowHeight: 21,
  987. headerFont: '12px 微软雅黑',
  988. font: '12px 微软雅黑',
  989. }
  990. };
  991. const withoutCl = {
  992. ledger: {
  993. cols: [
  994. {title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 145, formatter: '@', cellType: 'tree'},
  995. {title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 70, formatter: '@'},
  996. {title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  997. {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 185, formatter: '@'},
  998. {title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 50, formatter: '@', cellType: 'unit'},
  999. {title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, type: 'Number'},
  1000. {title: '项目节数量|数量1', colSpan: '2|1', rowSpan: '1|1', field: 'dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  1001. {title: '|数量2', colSpan: '|1', rowSpan: '|1', field: 'dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  1002. {title: '经济指标', colSpan: '1', rowSpan: '2', field: 'dgn_price', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1003. {title: '签约|数量', colSpan: '2|1', rowSpan: '1|1', field: 'deal_qty', hAlign: 2, width: 60, type: 'Number'},
  1004. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'deal_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1005. {title: '设计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'sgfh_qty', hAlign: 2, width: 60, type: 'Number'},
  1006. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'sgfh_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1007. {title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'},
  1008. {title: '备注', colSpan: '1', rowSpan: '2', field: 'memo', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1009. {title: '费用类别', colSpan: '1', rowSpan: '2', field: 'node_type', hAlign: 0, width: 100, cellType: 'customizeCombo'},
  1010. {title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1011. {title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1012. ],
  1013. emptyRows: 3,
  1014. headRows: 2,
  1015. headRowHeight: [25, 25],
  1016. defaultRowHeight: 21,
  1017. headerFont: '12px 微软雅黑',
  1018. font: '12px 微软雅黑',
  1019. },
  1020. pos: {
  1021. cols: [
  1022. {title: '计量单元', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 230, formatter: '@'},
  1023. {title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1024. {title: '位置', colSpan: '1', rowSpan: '2', field: 'position', hAlign: 0, width: 60, formatter: '@'},
  1025. {title: '设计量', colSpan: '1', rowSpan: '1', field: 'sgfh_qty', hAlign: 2, width: 120, type: 'Number'},
  1026. {title: '图册号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'},
  1027. {title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1028. {title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1029. ],
  1030. emptyRows: 3,
  1031. headRows: 1,
  1032. headRowHeight: [32],
  1033. headColWidth: [30],
  1034. defaultRowHeight: 21,
  1035. headerFont: '12px 微软雅黑',
  1036. font: '12px 微软雅黑',
  1037. }
  1038. };
  1039. const withClGcl = {
  1040. ledger: {
  1041. cols: [
  1042. {title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 145, formatter: '@', cellType: 'tree'},
  1043. {title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 70, formatter: '@'},
  1044. {title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1045. {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 185, formatter: '@'},
  1046. {title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 50, formatter: '@', cellType: 'unit'},
  1047. {title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, type: 'Number'},
  1048. {title: '签约|数量', colSpan: '2|1', rowSpan: '1|1', field: 'deal_qty', hAlign: 2, width: 60, type: 'Number'},
  1049. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'deal_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1050. {title: '项目节数量|数量1', colSpan: '2|1', rowSpan: '1|1', field: 'dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  1051. {title: '|数量2', colSpan: '|1', rowSpan: '|1', field: 'dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  1052. {title: '经济指标', colSpan: '1', rowSpan: '2', field: 'dgn_price', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1053. {title: '设计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'sgfh_qty', hAlign: 2, width: 60, type: 'Number'},
  1054. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'sgfh_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1055. {title: '设计错漏增减|数量', colSpan: '2|1', rowSpan: '1|1', field: 'sjcl_qty', hAlign: 2, width: 60, type: 'Number'},
  1056. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'sjcl_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1057. {title: '其他错漏增减|数量', colSpan: '2|1', rowSpan: '1|1', field: 'qtcl_qty', hAlign: 2, width: 60, type: 'Number'},
  1058. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'qtcl_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1059. {title: '台账小计|数量', colSpan: '2|1', rowSpan: '1|1', field: 'quantity', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1060. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'total_price', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1061. {title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'},
  1062. {title: '备注', colSpan: '1', rowSpan: '2', field: 'memo', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1063. {title: '费用类别', colSpan: '1', rowSpan: '2', field: 'node_type', hAlign: 0, width: 100, cellType: 'customizeCombo'},
  1064. {title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1065. {title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1066. ],
  1067. emptyRows: 3,
  1068. headRows: 2,
  1069. headRowHeight: [25, 25],
  1070. defaultRowHeight: 21,
  1071. headerFont: '12px 微软雅黑',
  1072. font: '12px 微软雅黑',
  1073. }
  1074. };
  1075. const withoutClGcl = {
  1076. ledger: {
  1077. cols: [
  1078. {title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 145, formatter: '@', cellType: 'tree'},
  1079. {title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 70, formatter: '@'},
  1080. {title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1081. {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 185, formatter: '@'},
  1082. {title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 50, formatter: '@', cellType: 'unit'},
  1083. {title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, type: 'Number'},
  1084. {title: '签约|数量', colSpan: '2|1', rowSpan: '1|1', field: 'deal_qty', hAlign: 2, width: 60, type: 'Number'},
  1085. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'deal_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1086. {title: '项目节数量|数量1', colSpan: '2|1', rowSpan: '1|1', field: 'dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  1087. {title: '|数量2', colSpan: '|1', rowSpan: '|1', field: 'dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  1088. {title: '经济指标', colSpan: '1', rowSpan: '2', field: 'dgn_price', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1089. {title: '设计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'sgfh_qty', hAlign: 2, width: 60, type: 'Number'},
  1090. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'sgfh_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1091. {title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'},
  1092. {title: '备注', colSpan: '1', rowSpan: '2', field: 'memo', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1093. {title: '费用类别', colSpan: '1', rowSpan: '2', field: 'node_type', hAlign: 0, width: 100, cellType: 'customizeCombo'},
  1094. {title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1095. {title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1096. ],
  1097. emptyRows: 3,
  1098. headRows: 2,
  1099. headRowHeight: [25, 25],
  1100. defaultRowHeight: 21,
  1101. headerFont: '12px 微软雅黑',
  1102. font: '12px 微软雅黑',
  1103. }
  1104. };
  1105. // 期 -- 本期计量台账
  1106. const stageTz = {
  1107. ledger: {
  1108. cols: [
  1109. {title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 145, formatter: '@', readOnly: true, cellType: 'tree'},
  1110. {title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 70, formatter: '@', readOnly: true},
  1111. {title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1112. {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 185, formatter: '@', readOnly: true},
  1113. {title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 60, formatter: '@', readOnly: true, cellType: 'unit'},
  1114. {title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1115. {title: '台账|数量', colSpan: '2|1', rowSpan: '1|1', field: 'quantity', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1116. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'total_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1117. {title: '本期合同计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 60, type: 'Number'},
  1118. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'contract_tp', hAlign: 2, width: 60, type: 'Number'},
  1119. {title: '本期数量变更|数量', colSpan: '3|1', rowSpan: '1|1', field: 'qc_qty', hAlign: 2, width: 60, type: 'Number'},
  1120. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'qc_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1121. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'qc_minus_qty', hAlign: 2, width: 60, type: 'Number'},
  1122. { title: '本期补差|原单价', colSpan: '2|1', rowSpan: '1|1', field: 'org_price', hAlign: 2, width: 60, type: 'Number', readOnly: true },
  1123. { title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'pc_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true },
  1124. {title: '本期完成计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'gather_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1125. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'gather_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1126. {title: '截止本期合同计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'end_contract_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1127. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_contract_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1128. {title: '截止本期数量变更|数量', colSpan: '2|1', rowSpan: '1|1', field: 'end_qc_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1129. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_qc_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1130. {title: '截止本期完成计量|数量', colSpan: '3|1', rowSpan: '1|1', field: 'end_gather_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1131. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_gather_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1132. {title: '|完成率(%)', colSpan: '1', rowSpan: '|1', field: 'end_final_1_percent', hAlign: 2, width: 80, readOnly: true, type: 'Number'},
  1133. {title: '合同|项目节数量1', colSpan: '2|1', rowSpan: '1|1', field: 'deal_dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  1134. {title: '|项目节数量2', colSpan: '|1', rowSpan: '|1', field: 'deal_dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  1135. {title: '变更|项目节数量1', colSpan: '2|1', rowSpan: '1|1', field: 'c_dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  1136. {title: '|项目节数量2', colSpan: '|1', rowSpan: '|1', field: 'c_dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  1137. {title: '经济指标', colSpan: '1', rowSpan: '2', field: 'final_dgn_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1138. {title: '本期批注', colSpan: '1', rowSpan: '2', field: 'postil', hAlign: 0, width: 100, formatter: '@', cellType: 'autoTip'},
  1139. {title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@', readOnly: true},
  1140. {title: '备注', colSpan: '1', rowSpan: '2', field: 'memo', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1141. {title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1142. {title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1143. {title: '总额计量', colSpan: '1', rowSpan: '2', field: 'is_tp', hAlign: 1, width: 60, cellType: 'checkbox'},
  1144. {title: '工序报验', colSpan: '1', rowSpan: '2', field: 'gxby', hAlign: 0, width: 80, formatter: '@', readOnly: true},
  1145. {title: '档案管理', colSpan: '1', rowSpan: '2', field: 'dagl', hAlign: 0, width: 80, formatter: '@', readOnly: true},
  1146. ],
  1147. emptyRows: 0,
  1148. headRows: 2,
  1149. headRowHeight: [25, 25],
  1150. defaultRowHeight: 21,
  1151. headerFont: '12px 微软雅黑',
  1152. font: '12px 微软雅黑',
  1153. frozenColCount: 5,
  1154. frozenLineColor: '#93b5e4',
  1155. },
  1156. pos: {
  1157. cols: [
  1158. {title: '计量单元', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 180, formatter: '@', readOnly: true},
  1159. {title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1160. {title: '位置', colSpan: '1', rowSpan: '2', field: 'position', hAlign: 0, width: 60, formatter: '@', readOnly: true},
  1161. {title: '台账数量', colSpan: '1', rowSpan: '2', field: 'quantity', hAlign: 2, width: 60, formatter: '@', readOnly: true},
  1162. {title: '现场实际数量', colSpan: '1', rowSpan: '2', field: 'real_qty', hAlign: 2, width: 60, type: 'Number'},
  1163. {title: '预计变更数量', colSpan: '1', rowSpan: '2', field: 'estimate_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1164. {title: '本期计量|合同', colSpan: '4|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 60, type: 'Number'},
  1165. {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'qc_qty', hAlign: 2, width: 80, type: 'Number'},
  1166. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'qc_minus_qty', hAlign: 2, width: 60, type: 'Number'},
  1167. {title: '|完成', colSpan: '|1', rowSpan: '|1', field: 'gather_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1168. {title: '截止本期计量|合同', colSpan: '3|1', rowSpan: '1|1', field: 'end_contract_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1169. {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'end_qc_qty', hAlign: 2, width: 80, type: 'Number', readOnly: true},
  1170. {title: '|完成', colSpan: '|1', rowSpan: '|1', field: 'end_gather_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1171. {title: '本期批注', colSpan: '1', rowSpan: '2', field: 'postil', hAlign: 0, width: 80, formatter: '@', cellType: 'autoTip'},
  1172. {title: '图册号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'},
  1173. {title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1174. {title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1175. {title: '工序报验', colSpan: '1', rowSpan: '2', field: 'gxby', hAlign: 0, width: 80, formatter: '@', readOnly: true},
  1176. {title: '档案管理', colSpan: '1', rowSpan: '2', field: 'dagl', hAlign: 0, width: 80, formatter: '@', readOnly: true},
  1177. ],
  1178. emptyRows: 3,
  1179. headRows: 2,
  1180. headRowHeight: [25, 25],
  1181. headColWidth: [30],
  1182. defaultRowHeight: 21,
  1183. headerFont: '12px 微软雅黑',
  1184. font: '12px 微软雅黑',
  1185. }
  1186. };
  1187. const stageCl = {
  1188. ledger: {
  1189. cols: [
  1190. {title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 145, formatter: '@', readOnly: true, cellType: 'tree'},
  1191. {title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 70, formatter: '@', readOnly: true},
  1192. {title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1193. {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 185, formatter: '@', readOnly: true},
  1194. {title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 60, formatter: '@', readOnly: true, cellType: 'unit'},
  1195. {title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1196. {title: '签约|数量', colSpan: '2|1', rowSpan: '1|1', field: 'deal_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1197. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'deal_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1198. {title: '台账|数量', colSpan: '2|1', rowSpan: '1|1', field: 'quantity', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1199. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'total_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1200. {title: '本期合同计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 60, type: 'Number'},
  1201. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'contract_tp', hAlign: 2, width: 60, type: 'Number'},
  1202. {title: '本期数量变更|数量', colSpan: '3|1', rowSpan: '1|1', field: 'qc_qty', hAlign: 2, width: 60, type: 'Number',},
  1203. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'qc_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1204. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'qc_minus_qty', hAlign: 2, width: 60, type: 'Number'},
  1205. { title: '本期补差|原单价', colSpan: '2|1', rowSpan: '1|1', field: 'org_price', hAlign: 2, width: 60, type: 'Number', readOnly: true },
  1206. { title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'pc_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true },
  1207. {title: '本期完成计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'gather_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1208. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'gather_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1209. {title: '截止本期合同计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'end_contract_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1210. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_contract_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1211. {title: '截止本期数量变更|数量', colSpan: '2|1', rowSpan: '1|1', field: 'end_qc_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1212. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_qc_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1213. {title: '截止本期完成计量|数量', colSpan: '3|1', rowSpan: '1|1', field: 'end_gather_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1214. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_gather_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1215. {title: '|完成率(%)', colSpan: '1', rowSpan: '|1', field: 'end_final_1_percent', hAlign: 2, width: 80, readOnly: true, type: 'Number'},
  1216. {title: '合同|项目节数量1', colSpan: '2|1', rowSpan: '1|1', field: 'deal_dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  1217. {title: '|项目节数量2', colSpan: '|1', rowSpan: '|1', field: 'deal_dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  1218. {title: '变更|项目节数量1', colSpan: '2|1', rowSpan: '1|1', field: 'c_dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  1219. {title: '|项目节数量2', colSpan: '|1', rowSpan: '|1', field: 'c_dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  1220. {title: '经济指标', colSpan: '1', rowSpan: '2', field: 'final_dgn_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1221. {title: '本期批注', colSpan: '1', rowSpan: '2', field: 'postil', hAlign: 0, width: 100, formatter: '@', cellType: 'autoTip'},
  1222. {title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@', readOnly: true},
  1223. {title: '备注', colSpan: '1', rowSpan: '2', field: 'memo', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1224. {title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1225. {title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1226. {title: '总额计量', colSpan: '1', rowSpan: '2', field: 'is_tp', hAlign: 1, width: 60, cellType: 'checkbox'},
  1227. {title: '工序报验', colSpan: '1', rowSpan: '2', field: 'gxby', hAlign: 0, width: 80, formatter: '@', readOnly: true},
  1228. {title: '档案管理', colSpan: '1', rowSpan: '2', field: 'dagl', hAlign: 0, width: 80, formatter: '@', readOnly: true},
  1229. ],
  1230. emptyRows: 0,
  1231. headRows: 2,
  1232. headRowHeight: [25, 25],
  1233. defaultRowHeight: 21,
  1234. headerFont: '12px 微软雅黑',
  1235. font: '12px 微软雅黑',
  1236. frozenColCount: 5,
  1237. frozenLineColor: '#93b5e4',
  1238. },
  1239. pos: {
  1240. cols: [
  1241. {title: '计量单元', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 180, formatter: '@'},
  1242. {title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1243. {title: '位置', colSpan: '1', rowSpan: '2', field: 'position', hAlign: 0, width: 60, formatter: '@'},
  1244. {title: '现场实际数量', colSpan: '1', rowSpan: '2', field: 'real_qty', hAlign: 2, width: 60, type: 'Number'},
  1245. {title: '预计变更数量', colSpan: '1', rowSpan: '2', field: 'estimate_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1246. {title: '本期计量|合同', colSpan: '4|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 60, type: 'Number'},
  1247. {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'qc_qty', hAlign: 2, width: 80, type: 'Number'},
  1248. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'qc_minus_qty', hAlign: 2, width: 60, type: 'Number'},
  1249. {title: '|完成', colSpan: '|1', rowSpan: '|1', field: 'gather_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1250. {title: '截止本期计量|合同', colSpan: '3|1', rowSpan: '1|1', field: 'end_contract_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1251. {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'end_qc_qty', hAlign: 2, width: 80, type: 'Number', readOnly: true},
  1252. {title: '|完成', colSpan: '|1', rowSpan: '|1', field: 'end_gather_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1253. {title: '本期批注', colSpan: '1', rowSpan: '2', field: 'postil', hAlign: 0, width: 80, formatter: '@', cellType: 'autoTip'},
  1254. {title: '图册号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'},
  1255. {title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1256. {title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1257. {title: '添加期数', colSpan: '1', rowSpan: '2', field: 'add_stage_order', hAlign:1, width: 80, readOnly: true},
  1258. {title: '工序报验', colSpan: '1', rowSpan: '2', field: 'gxby', hAlign: 0, width: 80, formatter: '@', readOnly: true},
  1259. {title: '档案管理', colSpan: '1', rowSpan: '2', field: 'dagl', hAlign: 0, width: 80, formatter: '@', readOnly: true},
  1260. ],
  1261. emptyRows: 20,
  1262. headRows: 2,
  1263. headRowHeight: [25, 25],
  1264. headColWidth: [30],
  1265. defaultRowHeight: 21,
  1266. headerFont: '12px 微软雅黑',
  1267. font: '12px 微软雅黑',
  1268. }
  1269. };
  1270. const stageNoCl = {
  1271. ledger: {
  1272. cols: [
  1273. {title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 145, formatter: '@', readOnly: true, cellType: 'tree'},
  1274. {title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 70, formatter: '@', readOnly: true},
  1275. {title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1276. {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 185, formatter: '@', readOnly: true},
  1277. {title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 60, formatter: '@', readOnly: true, cellType: 'unit'},
  1278. {title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1279. {title: '签约|数量', colSpan: '2|1', rowSpan: '1|1', field: 'deal_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1280. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'deal_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1281. {title: '台账|数量', colSpan: '2|1', rowSpan: '1|1', field: 'quantity', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1282. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'total_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1283. {title: '本期合同计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 60, type: 'Number'},
  1284. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'contract_tp', hAlign: 2, width: 60, type: 'Number'},
  1285. {title: '本期数量变更|数量', colSpan: '3|1', rowSpan: '1|1', field: 'qc_qty', hAlign: 2, width: 60, type: 'Number',},
  1286. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'qc_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1287. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'qc_minus_qty', hAlign: 2, width: 60, type: 'Number'},
  1288. {title: '本期补差|原单价', colSpan: '2|1', rowSpan: '1|1', field: 'org_price', hAlign: 2, width: 60, type: 'Number', readOnly: true },
  1289. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'pc_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1290. {title: '本期完成计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'gather_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1291. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'gather_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1292. {title: '截止本期合同计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'end_contract_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1293. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_contract_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1294. {title: '截止本期数量变更|数量', colSpan: '2|1', rowSpan: '1|1', field: 'end_qc_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1295. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_qc_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1296. {title: '截止本期完成计量|数量', colSpan: '3|1', rowSpan: '1|1', field: 'end_gather_qty', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1297. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_gather_tp', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1298. {title: '|完成率(%)', colSpan: '1', rowSpan: '|1', field: 'end_final_1_percent', hAlign: 2, width: 80, readOnly: true, type: 'Number'},
  1299. {title: '合同|项目节数量1', colSpan: '2|1', rowSpan: '1|1', field: 'deal_dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  1300. {title: '|项目节数量2', colSpan: '|1', rowSpan: '|1', field: 'deal_dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  1301. {title: '变更|项目节数量1', colSpan: '2|1', rowSpan: '1|1', field: 'c_dgn_qty1', hAlign: 2, width: 60, type: 'Number'},
  1302. {title: '|项目节数量2', colSpan: '|1', rowSpan: '|1', field: 'c_dgn_qty2', hAlign: 2, width: 60, type: 'Number'},
  1303. {title: '经济指标', colSpan: '1', rowSpan: '2', field: 'final_dgn_price', hAlign: 2, width: 60, readOnly: true, type: 'Number'},
  1304. {title: '本期批注', colSpan: '1', rowSpan: '2', field: 'postil', hAlign: 0, width: 100, formatter: '@', cellType: 'autoTip'},
  1305. {title: '图(册)号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@', readOnly: true},
  1306. {title: '备注', colSpan: '1', rowSpan: '2', field: 'memo', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1307. {title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1308. {title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1309. {title: '总额计量', colSpan: '1', rowSpan: '2', field: 'is_tp', hAlign: 1, width: 60, cellType: 'checkbox'},
  1310. {title: '工序报验', colSpan: '1', rowSpan: '2', field: 'gxby', hAlign: 0, width: 80, formatter: '@', readOnly: true},
  1311. {title: '档案管理', colSpan: '1', rowSpan: '2', field: 'dagl', hAlign: 0, width: 80, formatter: '@', readOnly: true},
  1312. ],
  1313. emptyRows: 0,
  1314. headRows: 2,
  1315. headRowHeight: [25, 25],
  1316. defaultRowHeight: 21,
  1317. headerFont: '12px 微软雅黑',
  1318. font: '12px 微软雅黑',
  1319. frozenColCount: 5,
  1320. frozenLineColor: '#93b5e4',
  1321. },
  1322. pos: {
  1323. cols: [
  1324. {title: '计量单元', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 180, formatter: '@'},
  1325. {title: '位置', colSpan: '1', rowSpan: '2', field: 'position', hAlign: 0, width: 60, formatter: '@'},
  1326. {title: 'ex_memo1', colSpan: '1', rowSpan: '2', field: 'ex_memo1', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1327. {title: '现场实际数量', colSpan: '1', rowSpan: '2', field: 'real_qty', hAlign: 2, width: 60, type: 'Number'},
  1328. {title: '预计变更数量', colSpan: '1', rowSpan: '2', field: 'estimate_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1329. {title: '本期计量|合同', colSpan: '4|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 60, type: 'Number'},
  1330. {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'qc_qty', hAlign: 2, width: 80, type: 'Number'},
  1331. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'qc_minus_qty', hAlign: 2, width: 60, type: 'Number'},
  1332. {title: '|完成', colSpan: '|1', rowSpan: '|1', field: 'gather_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1333. {title: '截止本期计量|合同', colSpan: '3|1', rowSpan: '1|1', field: 'end_contract_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1334. {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'end_qc_qty', hAlign: 2, width: 80, type: 'Number', readOnly: true},
  1335. {title: '|完成', colSpan: '|1', rowSpan: '|1', field: 'end_gather_qty', hAlign: 2, width: 60, type: 'Number', readOnly: true},
  1336. {title: '本期批注', colSpan: '1', rowSpan: '2', field: 'postil', hAlign: 0, width: 80, formatter: '@', cellType: 'autoTip'},
  1337. {title: '图册号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'},
  1338. {title: 'ex_memo2', colSpan: '1', rowSpan: '2', field: 'ex_memo2', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1339. {title: 'ex_memo3', colSpan: '1', rowSpan: '2', field: 'ex_memo3', hAlign: 0, width: 100, formatter: '@', cellType: 'ellipsisAutoTip'},
  1340. {title: '添加期数', colSpan: '1', rowSpan: '2', field: 'add_stage_order', hAlign:1, width: 80, readOnly: true},
  1341. {title: '工序报验', colSpan: '1', rowSpan: '2', field: 'gxby', hAlign: 0, width: 80, formatter: '@', readOnly: true},
  1342. {title: '档案管理', colSpan: '1', rowSpan: '2', field: 'dagl', hAlign: 0, width: 80, formatter: '@', readOnly: true},
  1343. ],
  1344. emptyRows: 20,
  1345. headRows: 2,
  1346. headRowHeight: [25, 25],
  1347. headColWidth: [30],
  1348. defaultRowHeight: 21,
  1349. headerFont: '12px 微软雅黑',
  1350. font: '12px 微软雅黑',
  1351. }
  1352. };
  1353. // 期 -- 清单汇总
  1354. const stageGather = {
  1355. gcl: {
  1356. cols: [
  1357. {title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 80, formatter: '@'},
  1358. {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 230, formatter: '@'},
  1359. {title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 60, formatter: '@', cellType: 'unit'},
  1360. {title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, type: 'Number'},
  1361. {title: '签约清单|数量', colSpan: '2|1', rowSpan: '1|1', field: 'deal_bills_qty', hAlign: 2, width: 60, type: 'Number'},
  1362. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'deal_bills_tp', hAlign: 2, width: 60, type: 'Number'},
  1363. {title: '台账|数量', colSpan: '2|1', rowSpan: '1|1', field: 'quantity', hAlign: 2, width: 60, type: 'Number'},
  1364. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'total_price', hAlign: 2, width: 60, type: 'Number'},
  1365. {title: '本期合同计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 60, type: 'Number'},
  1366. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'contract_tp', hAlign: 2, width: 60, type: 'Number'},
  1367. {title: '本期数量变更|数量', colSpan: '3|1', rowSpan: '1|1', field: 'qc_qty', hAlign: 2, width: 60, type: 'Number'},
  1368. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'qc_tp', hAlign: 2, width: 60, type: 'Number'},
  1369. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'qc_minus_qty', hAlign: 2, width: 60, type: 'Number'},
  1370. { title: '本期补差|原单价', colSpan: '2|1', rowSpan: '1|1', field: 'org_price', hAlign: 2, width: 60, type: 'Number' },
  1371. { title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'pc_tp', hAlign: 2, width: 60, type: 'Number' },
  1372. {title: '本期完成计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'gather_qty', hAlign: 2, width: 60, type: 'Number'},
  1373. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'gather_tp', hAlign: 2, width: 60, type: 'Number'},
  1374. {title: '截止本期合同计量|数量', colSpan: '2|1', rowSpan: '1|1', field: 'end_contract_qty', hAlign: 2, width: 60, type: 'Number'},
  1375. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_contract_tp', hAlign: 2, width: 60, type: 'Number'},
  1376. {title: '截止本期数量变更|数量', colSpan: '3|1', rowSpan: '1|1', field: 'end_qc_qty', hAlign: 2, width: 60, type: 'Number'},
  1377. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_qc_tp', hAlign: 2, width: 60, type: 'Number'},
  1378. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'end_qc_minus_qty', hAlign: 2, width: 60, type: 'Number'},
  1379. {title: '截止本期完成计量|数量', colSpan: '3|1', rowSpan: '1|1', field: 'end_gather_qty', hAlign: 2, width: 60, type: 'Number'},
  1380. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'end_gather_tp', hAlign: 2, width: 60, type: 'Number'},
  1381. {title: '|完成率(%)', colSpan: '|1', rowSpan: '|1', field: 'end_final_1_percent', hAlign: 2, width: 80, type: 'Number'},
  1382. {title: '台账+变更令|数量', colSpan: '3|1', rowSpan: '1|1', field: 'final_qty', hAlign: 2, width: 60, type: 'Number'},
  1383. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'final_tp', hAlign: 2, width: 60, type: 'Number'},
  1384. {title: '|完成率(%)', colSpan: '|1', rowSpan: '|1', field: 'final_percent', hAlign: 2, width: 80, type: 'Number'},
  1385. ],
  1386. emptyRows: 0,
  1387. headRows: 2,
  1388. headRowHeight: [25, 25],
  1389. headColWidth: [30],
  1390. defaultRowHeight: 21,
  1391. headerFont: '12px 微软雅黑',
  1392. font: '12px 微软雅黑',
  1393. readOnly: true,
  1394. },
  1395. leafXmj: {
  1396. cols: [
  1397. {title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 100, formatter: '@'},
  1398. {title: '台账数量', colSpan: '1', rowSpan: '2', field: 'quantity', hAlign: 2, width: 60, type: 'Number'},
  1399. {title: '本期计量数量|合同', colSpan: '4|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 60, type: 'Number'},
  1400. {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'qc_qty', hAlign: 2, width: 60, type: 'Number'},
  1401. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'qc_minus_qty', hAlign: 2, width: 60, type: 'Number'},
  1402. {title: '|完成', colSpan: '|1', rowSpan: '1|1', field: 'gather_qty', hAlign: 2, width: 60, type: 'Number'},
  1403. {title: '截止本期计量数量|合同', colSpan: '5|1', rowSpan: '1|1', field: 'end_contract_qty', hAlign: 2, width: 60, type: 'Number'},
  1404. {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'end_qc_qty', hAlign: 2, width: 60, type: 'Number'},
  1405. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'end_qc_minus_qty', hAlign: 2, width: 60, type: 'Number'},
  1406. {title: '|完成', colSpan: '|1', rowSpan: '|1', field: 'end_gather_qty', hAlign: 2, width: 60, type: 'Number'},
  1407. {title: '|完成率(%)', colSpan: '1', rowSpan: '|1', field: 'end_final_1_percent', hAlign: 2, width: 80, type: 'Number', visible: false},
  1408. {title: '单位工程', colSpan: '1', rowSpan: '2', field: 'dwgc', hAlign: 0, width: 80, formatter: '@'},
  1409. {title: '分部工程', colSpan: '1', rowSpan: '2', field: 'fbgc', hAlign: 0, width: 80, formatter: '@'},
  1410. {title: '分项工程', colSpan: '1', rowSpan: '2', field: 'fxgc', hAlign: 0, width: 80, formatter: '@'},
  1411. {title: '细目', colSpan: '1', rowSpan: '2', field: 'jldy', hAlign: 0, width: 80, formatter: '@'},
  1412. {title: '计量单元', colSpan: '1', rowSpan: '2', field: 'bwmx', hAlign: 0, width: 80, formatter: '@'},
  1413. {title: '图册号', colSpan: '1', rowSpan: '2', field: 'drawing_code', hAlign: 0, width: 80, formatter: '@'},
  1414. ],
  1415. emptyRows: 0,
  1416. headRows: 2,
  1417. headRowHeight: [25, 25],
  1418. headColWidth: [30],
  1419. defaultRowHeight: 21,
  1420. headerFont: '12px 微软雅黑',
  1421. font: '12px 微软雅黑',
  1422. readOnly: true,
  1423. },
  1424. gatherLeafXmj: {
  1425. cols: [
  1426. {title: '单位工程', colSpan: '1', rowSpan: '2', field: 'dwgc', hAlign: 0, width: 80, formatter: '@', visible: false},
  1427. {title: '分部工程', colSpan: '1', rowSpan: '2', field: 'fbgc', hAlign: 0, width: 80, formatter: '@', visible: false},
  1428. {title: '分项工程', colSpan: '1', rowSpan: '2', field: 'fxgc', hAlign: 0, width: 80, formatter: '@', visible: false},
  1429. {title: '细目', colSpan: '1', rowSpan: '2', field: 'jldy', hAlign: 0, width: 80, formatter: '@', visible: false},
  1430. {title: '计量单元', colSpan: '1', rowSpan: '2', field: 'bwmx', hAlign: 0, width: 80, formatter: '@'},
  1431. {title: '台账数量', colSpan: '1', rowSpan: '2', field: 'quantity', hAlign: 2, width: 60, type: 'Number'},
  1432. {title: '本期计量数量|合同', colSpan: '4|1', rowSpan: '1|1', field: 'contract_qty', hAlign: 2, width: 60, type: 'Number'},
  1433. {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'qc_qty', hAlign: 2, width: 60, type: 'Number'},
  1434. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'qc_minus_qty', hAlign: 2, width: 60, type: 'Number'},
  1435. {title: '|完成', colSpan: '|1', rowSpan: '1|1', field: 'gather_qty', hAlign: 2, width: 60, type: 'Number'},
  1436. {title: '截止本期计量数量|合同', colSpan: '4|1', rowSpan: '1|1', field: 'end_contract_qty', hAlign: 2, width: 60, type: 'Number'},
  1437. {title: '|数量变更', colSpan: '|1', rowSpan: '|1', field: 'end_qc_qty', hAlign: 2, width: 60, type: 'Number'},
  1438. {title: '|不计价', colSpan: '|1', rowSpan: '|1', field: 'end_qc_minus_qty', hAlign: 2, width: 60, type: 'Number'},
  1439. {title: '|完成', colSpan: '|1', rowSpan: '|1', field: 'end_gather_qty', hAlign: 2, width: 60, type: 'Number'},
  1440. ],
  1441. emptyRows: 0,
  1442. headRows: 2,
  1443. headRowHeight: [25, 25],
  1444. headColWidth: [30],
  1445. defaultRowHeight: 21,
  1446. headerFont: '12px 微软雅黑',
  1447. font: '12px 微软雅黑',
  1448. readOnly: true,
  1449. }
  1450. };
  1451. // 期 -- 审核比较
  1452. const stageCompare = {
  1453. ledger: {
  1454. baseCols: [
  1455. {title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 150, formatter: '@', cellType: 'tree'},
  1456. {title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 80, formatter: '@'},
  1457. {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 230, formatter: '@'},
  1458. {title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 50, formatter: '@', cellType: 'unit'},
  1459. {title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, type: 'Number'},
  1460. { title: '本期补差|原单价', colSpan: '2|1', rowSpan: '1|1', field: 'org_price', hAlign: 2, width: 60, type: 'Number', },
  1461. { title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'pc_tp', hAlign: 2, width: 60, type: 'Number' },
  1462. ],
  1463. extraCols: [
  1464. {title: '%s|数量', colSpan: '2|1', rowSpan: '1|1', field: 'gather_qty%s', hAlign: 2, width: 60, type: 'Number'},
  1465. {title: '|金额', colSpan: '|1', rowSpan: '|1', field: 'gather_tp%s', hAlign: 2, width: 60, type: 'Number'},
  1466. ],
  1467. emptyRows: 3,
  1468. headRows: 2,
  1469. headRowHeight: [25, 25],
  1470. defaultRowHeight: 21,
  1471. headerFont: '12px 微软雅黑',
  1472. font: '12px 微软雅黑',
  1473. readOnly: true,
  1474. },
  1475. pos: {
  1476. baseCols: [
  1477. {title: '计量单元', colSpan: '1', rowSpan: '1', field: 'name', hAlign: 0, width: 230, formatter: '@'},
  1478. ],
  1479. extraCols: [
  1480. {title: '%s', colSpan: '1', rowSpan: '1', field: 'gather_qty%s', hAlign: 2, width: 60, type: 'Number'},
  1481. ],
  1482. emptyRows: 3,
  1483. headRows: 1,
  1484. headRowHeight: [32],
  1485. headColWidth: [30],
  1486. defaultRowHeight: 21,
  1487. headerFont: '12px 微软雅黑',
  1488. font: '12px 微软雅黑',
  1489. readOnly: true,
  1490. }
  1491. };
  1492. // 计量台账 - cols需要二次计算得到
  1493. const measure = {
  1494. gather: {},
  1495. compare: {},
  1496. };
  1497. // 计量台账 -- 清单汇总 -- 工程量清单汇总
  1498. measure.gather.billsSpread = {
  1499. cols: [
  1500. {title: '清单编号', colSpan: '1', rowSpan: '1', field: 'b_code', hAlign: 0, width: 120, formatter: '@'},
  1501. {title: '名称', colSpan: '1', rowSpan: '1', field: 'name', hAlign: 0, width: 230, formatter: '@'},
  1502. {title: '单位', colSpan: '1', rowSpan: '1', field: 'unit', hAlign: 0, width: 60, formatter: '@', cellType: 'unit'},
  1503. {title: '单价', colSpan: '1', rowSpan: '1', field: 'unit_price', hAlign: 2, width: 60, type: 'Number'},
  1504. ],
  1505. emptyRows: 0,
  1506. headRows: 1,
  1507. headRowHeight: [32],
  1508. headColWidth: [30],
  1509. defaultRowHeight: 21,
  1510. headerFont: '12px 微软雅黑',
  1511. font: '12px 微软雅黑',
  1512. };
  1513. measure.compare.ledger = {
  1514. cols: [
  1515. {title: '项目节编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 150, formatter: '@', cellType: 'tree'},
  1516. {title: '清单编号', colSpan: '1', rowSpan: '2', field: 'b_code', hAlign: 0, width: 80, formatter: '@'},
  1517. {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 230, formatter: '@'},
  1518. {title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 50, formatter: '@', cellType: 'unit'},
  1519. {title: '单价', colSpan: '1', rowSpan: '2', field: 'unit_price', hAlign: 2, width: 60, type: 'Number'},
  1520. ],
  1521. emptyRows: 3,
  1522. headRows: 2,
  1523. headRowHeight: [25, 25],
  1524. defaultRowHeight: 21,
  1525. headerFont: '12px 微软雅黑',
  1526. font: '12px 微软雅黑',
  1527. };
  1528. measure.compare.pos = {
  1529. cols: [
  1530. {title: '计量单元', colSpan: '1', rowSpan: '1', field: 'name', hAlign: 0, width: 230, formatter: '@'},
  1531. ],
  1532. emptyRows: 3,
  1533. headRows: 1,
  1534. headRowHeight: [32],
  1535. headColWidth: [30],
  1536. defaultRowHeight: 21,
  1537. headerFont: '12px 微软雅黑',
  1538. font: '12px 微软雅黑',
  1539. };
  1540. const blank = {
  1541. cols: [],
  1542. emptyRows: 0,
  1543. headRows: 2,
  1544. headRowHeight: [32],
  1545. defaultRowHeight: 21,
  1546. headerFont: '12px 微软雅黑',
  1547. font: '12px 微软雅黑',
  1548. };
  1549. module.exports = {
  1550. EmptySpreadSetting,
  1551. BaseSetCol,
  1552. ProjectSpreadTemplate,
  1553. BaseSpreadColSetting,
  1554. SpreadSpec,
  1555. SpecSpreadColFields,
  1556. withoutClReplace,
  1557. withCl,
  1558. withoutCl,
  1559. withClGcl,
  1560. withoutClGcl,
  1561. stageTz,
  1562. stageCl,
  1563. stageNoCl,
  1564. stageGather,
  1565. stageCompare,
  1566. filterCols: { dealCols, dgnCols, clCols, stageDgnCols, realCompleteCols, thirdPartyCols, minusNoValueCols, priceDiffCols },
  1567. measure,
  1568. blank,
  1569. };