calc_program_view.js 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. /**
  2. * Created by Mai on 2017/7/28.
  3. * Modified by CSL on 2017/08/21.
  4. * 整合清单、定额的计算程序,代码合并、类合并、剔除多余单元。
  5. */
  6. let calcProgramSetting ={
  7. "emptyRows":0,
  8. "headRows":1,
  9. "headRowHeight":[
  10. 35
  11. ],
  12. "cols":[
  13. {
  14. "width":75,
  15. "readOnly": true,
  16. "head":{
  17. "titleNames":["序号"],
  18. "spanCols":[1],
  19. "spanRows":[1],
  20. "vAlign":[1],
  21. "hAlign":[1],
  22. "font":["Arial"]
  23. },
  24. "data":{
  25. "field":"serialNo",
  26. "vAlign":1,
  27. "hAlign":1,
  28. "font":"Arial"
  29. }
  30. },
  31. {
  32. "width":75,
  33. "readOnly": false,
  34. "head":{
  35. "titleNames":["费用代号"],
  36. "spanCols":[1],
  37. "spanRows":[1],
  38. "vAlign":[1],
  39. "hAlign":[1],
  40. "font":["Arial"]
  41. },
  42. "data":{
  43. "field":"code",
  44. "vAlign":1,
  45. "hAlign":0,
  46. "font":"Arial"
  47. }
  48. },
  49. {
  50. "width":200,
  51. "readOnly":false,
  52. "head":{
  53. "titleNames":["名称"],
  54. "spanCols":[1],
  55. "spanRows":[1],
  56. "vAlign":[1],
  57. "hAlign":[1],
  58. "font":["Arial"]
  59. },
  60. "data":{
  61. "field":"name",
  62. "vAlign":1,
  63. "hAlign":0,
  64. "font":"Arial"
  65. }
  66. },
  67. {
  68. "width":280,
  69. "readOnly":false,
  70. "head":{
  71. "titleNames":["计算基数"],
  72. "spanCols":[1],
  73. "spanRows":[1],
  74. "vAlign":[1],
  75. "hAlign":[1],
  76. "font":["Arial"]
  77. },
  78. "data":{
  79. "field":"dispExpr",
  80. "vAlign":1,
  81. "hAlign":0,
  82. "font":"Arial"
  83. }
  84. },
  85. {
  86. "width":220,
  87. "readOnly":false,
  88. "head":{
  89. "titleNames":["基数说明"],
  90. "spanCols":[1],
  91. "spanRows":[1],
  92. "vAlign":[1],
  93. "hAlign":[1],
  94. "font":["Arial"]
  95. },
  96. "data":{
  97. "field":"statement",
  98. "vAlign":1,
  99. "hAlign":0,
  100. "font":"Arial"
  101. }
  102. },
  103. {
  104. "width":80,
  105. "readOnly": false,
  106. "head":{
  107. "titleNames":["费率"],
  108. "spanCols":[1],
  109. "spanRows":[1],
  110. "vAlign":[1],
  111. "hAlign":[1],
  112. "font":["Arial"]
  113. },
  114. "data":{
  115. "field":"feeRate",
  116. "vAlign":1,
  117. "hAlign":2,
  118. "font":"Arial"
  119. }
  120. },
  121. {
  122. "width": 100,
  123. "readOnly":true,
  124. "head":{
  125. "titleNames":["单价"],
  126. "spanCols":[1],
  127. "spanRows":[1],
  128. "vAlign":[1],
  129. "hAlign":[1],
  130. "font":["Arial"]
  131. },
  132. "data":{
  133. "field":"unitFee",
  134. "vAlign":1,
  135. "hAlign":2,
  136. "font":"Arial"
  137. }
  138. },
  139. {
  140. "width":100,
  141. "readOnly":true,
  142. "head":{
  143. "titleNames":["合价"],
  144. "spanCols":[1],
  145. "spanRows":[1],
  146. "vAlign":[1],
  147. "hAlign":[1],
  148. "font":["Arial"]
  149. },
  150. "data":{
  151. "field":"totalFee",
  152. "vAlign":1,
  153. "hAlign":2,
  154. "font":"Arial"
  155. }
  156. },
  157. {
  158. "width":80,
  159. "readOnly": true,
  160. "head":{
  161. "titleNames":["费用类别"],
  162. "spanCols":[1],
  163. "spanRows":[1],
  164. "vAlign":[1],
  165. "hAlign":[1],
  166. "font":["Arial"]
  167. },
  168. "data":{
  169. "field":"type",
  170. "vAlign":1,
  171. "hAlign":0,
  172. "font":"Arial"
  173. }
  174. },
  175. {
  176. "width":120,
  177. "readOnly":false,
  178. "head":{
  179. "titleNames":["备注"],
  180. "spanCols":[1],
  181. "spanRows":[1],
  182. "vAlign":[1],
  183. "hAlign":[1],
  184. "font":["Arial"]
  185. },
  186. "data":{
  187. "field":"memo",
  188. "vAlign":1,
  189. "hAlign":0,
  190. "font":"Arial"
  191. }
  192. }
  193. ]
  194. };
  195. let calcProgramObj = {
  196. sheet: null,
  197. treeNode: null,
  198. setting: {
  199. header: [
  200. {headerName: "费用代号", headerWidth: 75, dataCode: "code", dataType: "String", hAlign: "left"},
  201. {headerName: "费用名称", headerWidth: 200, dataCode: "name", dataType: "String"},
  202. {headerName: "计算基数", headerWidth: 200, dataCode: "dispExpr", dataType: "String"},
  203. {headerName: "基数说明", headerWidth: 400, dataCode: "statement", dataType: "String"},
  204. {headerName: "费率", headerWidth: 80, dataCode: "feeRate", dataType: "Number"}, // precision: 3
  205. {headerName: "单价", headerWidth: 100, dataCode: "unitFee", dataType: "Number"}, // execRst
  206. {headerName: "合价", headerWidth: 100, dataCode: "totalFee", dataType: "Number"},
  207. {headerName: "备注", headerWidth: 120, dataCode: "memo", dataType: "String"}
  208. ],
  209. view: {
  210. comboBox: [],
  211. lockColumns: [0, 1, 2, 3, 4, 5, 6, 7]
  212. }
  213. },
  214. initSheet: function (sheet) {
  215. var me = this;
  216. me.sheet = sheet;
  217. sheetCommonObj.initSheet(me.sheet, me.setting, 1);
  218. },
  219. showData: function (treeNode) {
  220. var me = this;
  221. me.treeNode = treeNode;
  222. if (treeNode.sourceType === projectObj.project.Ration.getSourceType()) {
  223. projectObj.project.calcProgram.calculate(treeNode);
  224. if (treeNode.parent) {
  225. projectObj.converseCalculateBills(treeNode.parent);
  226. }
  227. me.datas = me.treeNode.data.calcTemplate.calcItems;
  228. sheetCommonObj.initSheet(me.sheet, me.setting, me.datas.length);
  229. sheetCommonObj.showData(me.sheet, me.setting, me.datas);
  230. }
  231. else if (treeNode.sourceType === projectObj.project.Bills.getSourceType()) {
  232. SheetDataHelper.loadSheetHeader(calcProgramSetting, me.sheet);
  233. SheetDataHelper.loadSheetData(calcProgramSetting, me.sheet, baseCalcField);
  234. }
  235. },
  236. clearData: function (){
  237. var me = this;
  238. me.treeNode = null;
  239. sheetCommonObj.cleanSheet(me.sheet, me.setting, -1);
  240. }
  241. };