tender_price_view.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. /**
  2. * Created by zhang on 2018/6/1.
  3. */
  4. let tender_obj={
  5. tenderSpread:null,
  6. tenderSheet:null,
  7. tenderTree:null,
  8. tenderController:null,
  9. tenderSetting:{
  10. header:[
  11. {headerName: "项目编码", headerWidth: 170, dataCode: "code", dataType: "String",spanRows: [2]},
  12. {headerName: "类别", headerWidth: 50, dataCode: "subType", dataType: "String",spanRows: [2]},
  13. {headerName: "项目名称", headerWidth: 200, dataCode: "name",showHint:true, hAlign: "left", dataType: "String",spanRows: [2]},
  14. {headerName: "计量\n单位", headerWidth: 120, dataCode: "unit", hAlign: "center", dataType: "String",spanRows: [2]},
  15. {headerName: "工程量", headerWidth: 120, dataCode: "basePrice", hAlign: "right", dataType: "Number",validator:"number",spanRows: [2]},
  16. {headerName: "不调价", headerWidth: 55, dataCode: "is_adjust_price", hAlign: "center", cellType : "checkBox",dataType: "Number",spanRows: [2]},
  17. {headerName: ["初始报价","综合单价"], headerWidth: 80, dataCode: "feesIndex.common.unitFee", hAlign: "right", dataType: "Number",validator:"number",spanCols : [2,1]},
  18. {headerName: ["","综合合价"], headerWidth: 80, dataCode: "feesIndex.common.totalFee", hAlign: "right", dataType: "Number",validator:"number",spanCols : [0,1]},
  19. {headerName: ["反向目标","综合单价"], headerWidth: 80, dataCode: "feesIndex.common.targetUnitFee", hAlign: "right", dataType: "Number",validator:"number",spanCols : [2,1]},
  20. {headerName: ["","综合合价"], headerWidth: 80, dataCode: "feesIndex.common.targetTotalFee", hAlign: "right", dataType: "Number",validator:"number",spanCols : [0,1]},
  21. {headerName: ["调整后报价","综合单价"], headerWidth: 80, dataCode: "feesIndex.common.tenderUnitFee", hAlign: "right", dataType: "Number",validator:"number",spanCols : [2,1]},
  22. {headerName: ["","综合合价"], headerWidth: 80, dataCode: "feesIndex.common.tenderTotalFee", hAlign: "right", dataType: "Number",validator:"number",spanCols : [0,1]},
  23. {headerName: ["消耗量调整系数","人工"], headerWidth: 80, dataCode: "quantityCoe.labour", hAlign: "right", dataType: "Number",validator:"number",spanCols : [5,1]},
  24. {headerName: ["","材料"], headerWidth: 80, dataCode: "quantityCoe.material", hAlign: "right", dataType: "Number",validator:"number",spanCols : [0,1]},
  25. {headerName: ["","机械"], headerWidth: 80, dataCode: "quantityCoe.machine", hAlign: "right", dataType: "Number",validator:"number",spanCols : [0,1]},
  26. {headerName: ["","主材"], headerWidth: 80, dataCode: "quantityCoe.main", hAlign: "right", dataType: "Number",validator:"number",spanCols : [0,1]},
  27. {headerName: ["","设备"], headerWidth: 80, dataCode: "quantityCoe.equipment", hAlign: "right", dataType: "Number",validator:"number",spanCols : [0,1]}
  28. ],
  29. view: {
  30. lockColumns: [0,1,2,3,4,5,6,7,10,11]
  31. }
  32. },
  33. tenderTreeSetting:{
  34. "emptyRows" : 3,
  35. "headRows" :2,
  36. "treeCol" : 0,
  37. "headRowHeight" : [21],
  38. "cols" : []
  39. },
  40. initTenderSpread:function () {
  41. if(!this.tenderSpread){
  42. this.tenderSpread = SheetDataHelper.createNewSpread($("#tenderSpread")[0]);
  43. }
  44. this.tenderSheet = this.tenderSpread.getSheet(0);
  45. this.tenderTree = cacheTree.createNew(this);
  46. this.tenderTreeSetting = this.createTenderTreeSetting();
  47. TREE_SHEET_HELPER.initSetting($('#tenderSpread')[0], this.tenderTreeSetting );
  48. this.tenderTreeSetting.setAutoFitRow = MainTreeCol.getEvent("setAutoFitRow");
  49. this.tenderController = TREE_SHEET_CONTROLLER.createNew(this.tenderTree, this.tenderSheet, this.tenderTreeSetting);
  50. // this.tenderController.bind(TREE_SHEET_CONTROLLER.eventName.treeSelectedChanged, this.onSelectionChange);
  51. },
  52. createTenderTreeSetting:function () {
  53. return sheetCommonObj.transferToTreeSetting(this.tenderSetting,this.tenderTreeSetting);
  54. },
  55. showTenderData:function () {
  56. let me = this;
  57. let mainTree = projectObj.project.mainTree;
  58. this.tenderTree.nodes={},this.tenderTree.selected = null,this.tenderTree.roots = [],this.tenderTree.items=[];
  59. for(r of mainTree.roots){
  60. createTenderNode(r,null,null);
  61. }
  62. me.tenderTree.sortTreeItems();
  63. me.tenderController.showTreeData();
  64. function createTenderNode(mainNode,parent,next) {
  65. let newNode = me.tenderTree.addNode(parent, next, mainNode.data.ID);
  66. newNode.data = mainNode.data;
  67. newNode.source = mainNode.source;
  68. newNode.sourceType = mainNode.sourceType;
  69. newNode.mainNode = mainNode;
  70. if(mainNode.children.length > 0){
  71. for(let c of mainNode.children){
  72. createTenderNode(c,newNode,null);
  73. }
  74. }
  75. return newNode;
  76. }
  77. }
  78. };
  79. $(function () {
  80. $('#tab_tender_price').on('shown.bs.tab', function (e) {
  81. sessionStorage.setItem('mainTab', '#tab_tender_price');
  82. $(e.relatedTarget.hash).removeClass('active');
  83. if(!tender_obj.tenderSpread){
  84. tender_obj.initTenderSpread();
  85. }
  86. autoFlashHeight();
  87. tender_obj.tenderSpread.refresh();
  88. tender_obj.showTenderData();
  89. });
  90. });