calc_program_view.js 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  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. "getText": function (record) {
  174. if (record.type) {
  175. for (let ft of feeType) {
  176. if (ft.type === record.type) {
  177. return ft.name;
  178. }
  179. }
  180. }
  181. return '';
  182. }
  183. }
  184. },
  185. {
  186. "width":120,
  187. "readOnly":false,
  188. "head":{
  189. "titleNames":["备注"],
  190. "spanCols":[1],
  191. "spanRows":[1],
  192. "vAlign":[1],
  193. "hAlign":[1],
  194. "font":["Arial"]
  195. },
  196. "data":{
  197. "field":"memo",
  198. "vAlign":1,
  199. "hAlign":0,
  200. "font":"Arial"
  201. }
  202. }
  203. ]
  204. };
  205. let calcProgramObj = {
  206. sheet: null,
  207. treeNode: null,
  208. setting: {
  209. header: [
  210. {headerName: "费用代号", headerWidth: 75, dataCode: "code", dataType: "String", hAlign: "left"},
  211. {headerName: "费用名称", headerWidth: 200, dataCode: "name", dataType: "String"},
  212. {headerName: "计算基数", headerWidth: 200, dataCode: "dispExpr", dataType: "String"},
  213. {headerName: "基数说明", headerWidth: 400, dataCode: "statement", dataType: "String"},
  214. {headerName: "费率", headerWidth: 80, dataCode: "feeRate", dataType: "Number"}, // precision: 3
  215. {headerName: "单价", headerWidth: 100, dataCode: "unitFee", dataType: "Number"}, // execRst
  216. {headerName: "合价", headerWidth: 100, dataCode: "totalFee", dataType: "Number"},
  217. {headerName: "备注", headerWidth: 120, dataCode: "memo", dataType: "String"}
  218. ],
  219. view: {
  220. comboBox: [],
  221. lockColumns: [0, 1, 2, 3, 4, 5, 6, 7]
  222. }
  223. },
  224. initSheet: function (sheet) {
  225. var me = this;
  226. me.sheet = sheet;
  227. sheetCommonObj.initSheet(me.sheet, me.setting, 1);
  228. },
  229. showData: function (treeNode) {
  230. var me = this;
  231. me.treeNode = treeNode;
  232. if (treeNode.sourceType === projectObj.project.Ration.getSourceType()) {
  233. projectObj.project.calcProgram.calculate(treeNode);
  234. me.datas = me.treeNode.data.calcTemplate.calcItems;
  235. sheetCommonObj.initSheet(me.sheet, me.setting, me.datas.length);
  236. sheetCommonObj.showData(me.sheet, me.setting, me.datas);
  237. }
  238. else if (treeNode.sourceType === projectObj.project.Bills.getSourceType()) {
  239. SheetDataHelper.loadSheetHeader(calcProgramSetting, me.sheet);
  240. SheetDataHelper.loadSheetData(calcProgramSetting, me.sheet, baseCalcField);
  241. }
  242. },
  243. clearData: function (){
  244. var me = this;
  245. me.treeNode = null;
  246. sheetCommonObj.cleanSheet(me.sheet, me.setting, -1);
  247. }
  248. };