spread.js 115 KB

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