material_calc_view.js 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. /**
  2. * Created by zhang on 2019/3/11.
  3. */
  4. materialCalcObj = {
  5. moduleName:'materalCal',
  6. materialSpread:null,
  7. materialSheet:null,
  8. materialDatas:[],
  9. materialSetting:{
  10. header:[
  11. {headerName: "编号", headerWidth: 80, dataCode: "code", dataType: "String"},
  12. {headerName: "名称", headerWidth: 100, dataCode: "name", dataType: "String"},
  13. {headerName: "预算价", headerWidth: 70, dataCode: "marketPrice", hAlign: "right", dataType: "Number",validator:"number"},
  14. {headerName: "供应地点", headerWidth: 100, dataCode: "unit", hAlign: "left", dataType: "String"},
  15. {headerName: "原价", headerWidth: 45, dataCode: "originalPrice", hAlign: "center", dataType: "String"},
  16. {headerName: "单位运费", headerWidth: 80, dataCode: "unitFreight", hAlign: "right", dataType: "Number",validator:"number"},//,decimalField:'glj.unitPrice'
  17. {headerName: "单位毛重(吨)", headerWidth: 60, dataCode: "unitWeight", hAlign: "right", dataType: "Number"},//,decimalField:"glj.unitPrice"
  18. {headerName: "装卸总次数", headerWidth: 50, dataCode: "totalLoadingTimes", hAlign: "right", dataType: "Number",validator:"number"},//,decimalField:"glj.unitPrice"
  19. {headerName: "每增加一次装卸损耗率", headerWidth: 80, dataCode: "handlingLossRate", hAlign: "right", dataType: "Number",decimalField:"glj.quantity",validator:"number"},
  20. {headerName: "场外运输损耗率", headerWidth: 60, dataCode: "offSiteTransportLossRate", hAlign: "right", dataType: "Number"},//,decimalField:"glj.unitPrice"
  21. {headerName: "场外运输损耗", headerWidth: 60, dataCode: "offSiteTransportLoss", hAlign: "right", dataType: "Number"},//,decimalField:"glj.unitPrice"
  22. {headerName: "采购及保管费率", headerWidth: 60, dataCode: "purchaseStorageRate", hAlign: "right", dataType: "Number"},//,decimalField:"glj.unitPrice"
  23. {headerName: "采购及保管费", headerWidth: 60, dataCode: "purchaseStorage", hAlign: "right", dataType: "Number"},//,decimalField:"glj.unitPrice"
  24. {headerName: "包装品回收价值", headerWidth: 60, dataCode: "packageRecoverValue", hAlign: "right", dataType: "Number"}//,decimalField:"glj.unitPrice"
  25. ],
  26. view: {
  27. lockColumns: [0,1,2,3,4,5,6,7],
  28. colHeaderHeight:45
  29. }
  30. },
  31. freightSpread:null,
  32. freightSheet:null,
  33. freightDatas:[],
  34. freightSetting:{
  35. header:[
  36. {headerName: "起讫地点", headerWidth: 80, dataCode: "start", dataType: "String"},
  37. {headerName: "运输工具", headerWidth: 80, dataCode: "conveyance", dataType: "String"},
  38. {headerName: "单位运价", headerWidth: 70, dataCode: "unitFreight", hAlign: "right", dataType: "Number",validator:"number"},
  39. {headerName: "km运距", headerWidth: 50, dataCode: "kmDistance", hAlign: "left", dataType: "String"},
  40. {headerName: "装卸费单价", headerWidth: 45, dataCode: "unitLoadingFee", hAlign: "center", dataType: "String"},
  41. {headerName: "装卸次数", headerWidth: 80, dataCode: "loadingTimes", hAlign: "right", dataType: "Number",validator:"number"},//,decimalField:'glj.unitPrice'
  42. {headerName: "其它费用", headerWidth: 60, dataCode: "otherFee", hAlign: "right", dataType: "Number"},//,decimalField:"glj.unitPrice"
  43. {headerName: "运价增加率(%)", headerWidth: 80, dataCode: "freightIncreaseRate", hAlign: "right", dataType: "Number",validator:"number"},//,decimalField:"glj.unitPrice"
  44. {headerName: "加权系数", headerWidth: 80, dataCode: "weightCoe", hAlign: "right", dataType: "Number",decimalField:"glj.quantity",validator:"number"},
  45. {headerName: "计算式", headerWidth: 60, dataCode: "exp", hAlign: "right", dataType: "Number"},//,decimalField:"glj.unitPrice"
  46. ],
  47. view: {
  48. lockColumns: [0,1,2,3,4,5,6,7],
  49. colHeaderHeight:45
  50. }
  51. },
  52. priceSpread:null,
  53. priceSheet:null,
  54. priceData:[],
  55. priceSetting:{
  56. header:[
  57. {headerName: "供应地点", headerWidth: 80, dataCode: "start", dataType: "String"},
  58. {headerName: "供应价", headerWidth: 70, dataCode: "unitFreight", hAlign: "right", dataType: "Number",validator:"number"},
  59. {headerName: "加权系数", headerWidth: 80, dataCode: "loadingTimes", hAlign: "right", dataType: "Number",validator:"number"},//,decimalField:'glj.unitPrice'
  60. ],
  61. view: {
  62. lockColumns: [0,1,2],
  63. colHeaderHeight:45
  64. }
  65. },
  66. initMaterialSpread:function () {
  67. this.materialSpread = SheetDataHelper.createNewSpread($("#materialCalcSheet")[0]);
  68. sheetCommonObj.spreadDefaultStyle(this.materialSpread);
  69. this.materialSheet = this.materialSpread.getSheet(0);
  70. sheetCommonObj.initSheet(this.materialSheet, this.materialSetting, 30);
  71. /* this.materialSheet.bind(GC.Spread.Sheets.Events.EditEnded, this.onAssEditEnded);
  72. this.materialSheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onAssRangeChanged);*/
  73. this.materialSheet.name('material_calc');
  74. if(projectReadOnly){
  75. disableSpread(this.materialSpread);
  76. }
  77. },
  78. initFreightSpread:function(){
  79. this.freightSpread = SheetDataHelper.createNewSpread($("#freightSheet")[0]);
  80. sheetCommonObj.spreadDefaultStyle(this.freightSpread);
  81. this.freightSheet = this.freightSpread.getSheet(0);
  82. sheetCommonObj.initSheet(this.freightSheet, this.freightSetting, 30);
  83. /* this.freightSheet.bind(GC.Spread.Sheets.Events.EditEnded, this.onAssEditEnded);
  84. this.freightSheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onAssRangeChanged);*/
  85. this.freightSheet.name('freight_calc');
  86. if(projectReadOnly){
  87. disableSpread(this.freightSpread);
  88. }
  89. },
  90. initPriceSpread:function(){
  91. this.priceSpread = SheetDataHelper.createNewSpread($("#priceSheet")[0]);
  92. sheetCommonObj.spreadDefaultStyle(this.priceSpread);
  93. this.priceSheet = this.priceSpread.getSheet(0);
  94. sheetCommonObj.initSheet(this.priceSheet, this.priceSetting, 30);
  95. /* this.freightSheet.bind(GC.Spread.Sheets.Events.EditEnded, this.onAssEditEnded);
  96. this.freightSheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onAssRangeChanged);*/
  97. this.priceSheet.name('price_calc');
  98. if(projectReadOnly){
  99. disableSpread(this.priceSpread);
  100. }
  101. },
  102. showFreightDatas:function () {
  103. if(!$('#freightSheet').is(':visible')) return;
  104. this.freightSheet.setRowCount(0);
  105. sheetCommonObj.showData(this.freightSheet, this.freightSetting,this.freightDatas);
  106. },
  107. showMaterialCalcDatas:function(){
  108. this.materialSheet.setRowCount(0);
  109. sheetCommonObj.showData(this.materialSheet, this.materialSetting,this.materialDatas);
  110. this.materialSheet.setRowCount(this.materialDatas.length);
  111. },
  112. showPriceDatas:function () {
  113. if(!$('#priceSheet').is(':visible')) return;
  114. this.priceSheet.setRowCount(0);
  115. sheetCommonObj.showData(this.priceSheet, this.priceSetting,this.priceData);
  116. },
  117. showDatas:function(){
  118. if(!$('#materialCalcSheet').is(':visible')) return;
  119. if(!this.materialSpread) this.initMaterialSpread();
  120. if(!this.freightSpread) this.initFreightSpread();
  121. if(!this.priceSpread) this.initPriceSpread();
  122. this.showMaterialCalcDatas();
  123. this.showFreightDatas();
  124. this.showPriceDatas();
  125. projectGljObject.refreshSubViews();
  126. },
  127. getSideResize: function () {
  128. let rg_sideResizeEles = {};
  129. rg_sideResizeEles.eleObj = {
  130. module: this.moduleName,
  131. resize: $('#mrResize'),
  132. parent: $('#projectGljBottom'),
  133. left: $('#materialCalcSheet'),
  134. right: $('#calcDiv')
  135. };
  136. rg_sideResizeEles.limit = {
  137. min: 100,
  138. max: `$('#projectGljBottom').width()-100`
  139. };
  140. return rg_sideResizeEles;
  141. },
  142. initTabWidth:function () {
  143. if($("#mix_ratio_sheet").is(':visible')) return ;//如果是组成物计算界面,返回
  144. let mr_sideResizeEles = this.getSideResize();
  145. SlideResize.loadHorizonWidth(mr_sideResizeEles.eleObj.module,
  146. [rg_sideResizeEles.eleObj.resize], [mr_sideResizeEles.eleObj.left, mr_sideResizeEles.eleObj.right],null,2);
  147. $("#spreadTabDiv").width( $('#calcDiv').width() - mr_sideResizeEles.eleObj.resize.width() - 32)
  148. }
  149. };
  150. $(function () {
  151. $("#calc-nav").on('shown.bs.tab', function () {
  152. materialCalcObj.initTabWidth();
  153. projectGljObject.refreshSubViews();
  154. });
  155. $("#calTab ul li a").on('shown.bs.tab', function () {
  156. materialCalcObj.showFreightDatas();
  157. materialCalcObj.showPriceDatas();
  158. projectGljObject.refreshSubViews();
  159. });
  160. });
  161. let mr_sideResizeEles = materialCalcObj.getSideResize();
  162. SlideResize.horizontalSlide(mr_sideResizeEles.eleObj, mr_sideResizeEles.limit, function(){
  163. $("#spreadTabDiv").width( $('#calcDiv').width() - mr_sideResizeEles.eleObj.resize.width() - 32);
  164. projectGljObject.refreshSubViews();
  165. },2);