calc_program_view.js 7.1 KB

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