calc_program_view.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /**
  2. * Created by Mai on 2017/7/28.
  3. * Modified by CSL on 2017/08/21.
  4. * 整合清单、定额的计算程序,代码合并、类合并、剔除多余单元。
  5. */
  6. let calcProgramObj = {
  7. sheet: null,
  8. treeNode: null,
  9. setting: {
  10. header: [
  11. {headerName: "费用代号", headerWidth: CP_Col_Width.code, dataCode: "code", dataType: "String", hAlign: "left"},
  12. {headerName: "费用名称", headerWidth: CP_Col_Width.name, dataCode: "name", dataType: "String"},
  13. {headerName: "计算基数", headerWidth: CP_Col_Width.dispExprUser, dataCode: "dispExprUser", dataType: "String"},
  14. {headerName: "费率", headerWidth: CP_Col_Width.feeRate, dataCode: "feeRate", dataType: "Number"},
  15. {headerName: "单价", headerWidth: CP_Col_Width.unitFee, dataCode: "unitFee", dataType: "Number"},
  16. {headerName: "合价", headerWidth: CP_Col_Width.totalFee, dataCode: "totalFee", dataType: "Number"},
  17. {headerName: "调后单价", headerWidth: CP_Col_Width.unitFee, dataCode: "tenderUnitFee", dataType: "Number"},
  18. {headerName: "调后合价", headerWidth: CP_Col_Width.totalFee, dataCode: "tenderTotalFee", dataType: "Number"},
  19. {headerName: "费用类别", headerWidth:CP_Col_Width.displayFieldName, dataCode:"displayFieldName", dataType: "String", hAlign: "center"},
  20. {headerName: "基数说明", headerWidth: CP_Col_Width.statement, dataCode: "statement", dataType: "String"},
  21. {headerName: "备注", headerWidth: CP_Col_Width.memo, dataCode: "memo", dataType: "String"}
  22. ],
  23. view: {
  24. comboBox: [],
  25. lockColumns: [0,1,2,3,4,5,6,7,8,9,10],
  26. colHeaderHeight: CP_Col_Width.colHeader,
  27. rowHeaderWidth: CP_Col_Width.rowHeader
  28. }
  29. },
  30. initSheet: function (sheet) {
  31. var me = this;
  32. me.sheet = sheet;
  33. for (let col of me.setting.header){
  34. if (col.headerName == '费率') col.tofix = decimalObj.feeRate;
  35. if (col.headerName == '单价' || col.headerName == '调后单价') col.tofix = decimalObj.ration.unitPrice;
  36. if (col.headerName == '合价' || col.headerName == '调后合价') col.tofix = decimalObj.ration.totalPrice;
  37. };
  38. sheetCommonObj.initSheet(me.sheet, me.setting, 1);
  39. },
  40. // 刷新显示当前选中树结点的计算程序。
  41. // treeNode:末指定时默认是造价书当前选中树结点
  42. // refreshKind: 1 仅刷新 2 计算+刷新 3 计算+保存+刷新 4 仅计算
  43. refreshCalcProgram: function (treeNode, refreshKind = 1) {
  44. var me = this;
  45. me.treeNode = treeNode;
  46. switch (refreshKind) {
  47. case 1:
  48. // doNothing
  49. break;
  50. case 2:
  51. case 4:
  52. projectObj.project.calcProgram.innerCalc(treeNode, []);
  53. projectObj.project.calcProgram.rationMap = null;
  54. projectObj.project.calcProgram.pgljMap = null;
  55. delete treeNode.changed;
  56. break;
  57. case 3:
  58. projectObj.project.calcProgram.calcAndSave(treeNode);
  59. break;
  60. }
  61. if (!me.sheet) return;
  62. me.datas = treeNode.data.calcTemplate ? treeNode.data.calcTemplate.calcItems : [];
  63. if (refreshKind === 4) {
  64. return;
  65. }
  66. sheetCommonObj.initSheet(me.sheet, me.setting, me.datas.length);
  67. sheetCommonObj.showData(me.sheet, me.setting, me.datas);
  68. customRowHeader(me.sheet, me.datas.length);
  69. },
  70. clearData: function (){
  71. var me = this;
  72. me.treeNode = null;
  73. sheetCommonObj.cleanSheet(me.sheet, me.setting, -1);
  74. customRowHeader(me.sheet, me.datas.length);
  75. }
  76. };