yjMonthProgress_new.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. var locat = (window.location+'').split('/');
  2. $(function(){if('fhsms'== locat[3]){locat = locat[0]+'//'+locat[2];}else{locat = locat[0]+'//'+locat[2]+'/'+locat[3];};});
  3. $(getTop(globalThis).hangge());
  4. var pd_TABLETYPE = $('#pd_TABLETYPE').html();
  5. var subtable = $('#subtable').html();
  6. var pd_COMPANY = $("#pd_COMPANY").html();
  7. var pd_COMPANY_ID = $("#pd_COMPANY_ID").html();
  8. var pd_YEAR = $("#pd_YEAR").html();
  9. var pd_mode = $("#pd_mode").html();
  10. var editflag = 0;
  11. var validateJsonData = new Object();
  12. function tableInit(){
  13. //最后的汇总
  14. $('#simple-table tbody .edittr').each(function(index,e){
  15. //行内总计
  16. setRowSumCell(e);
  17. //百分比初始化
  18. setTrPercentCell(e);
  19. });
  20. //各个小计行
  21. var subtotal = $('.subtotal').find('td[totalType="subtotal"]');
  22. for(var i=0; i<subtotal.length; i++){
  23. var companyid = subtotal.eq(i).parent().attr("id");
  24. var var1=subtotal.eq(i).attr("class");
  25. var var2=var1.split(' ');
  26. var classname = var2[1];
  27. setSubTotalCell(companyid,classname,i);
  28. }
  29. //数字格式化
  30. $('td.num').each(function(index,e){
  31. var num = $(e).html();
  32. num = numFormat(num);
  33. $(e).html(num);
  34. });
  35. //小计行的汇总
  36. $('#simple-table tbody .subtotal').each(function(index,e){
  37. setRowSumCell2(e);
  38. //小计行百分比初始化(实际/审核费用)
  39. setTrPercentCell(e);
  40. });
  41. //最下面的累计值
  42. var totalcells = $('.totaltr').find('.sumCell');
  43. for(var i=0; i<totalcells.length; i++){
  44. setTotalCell(i);
  45. }
  46. $('#simple-table tbody .totaltr').each(function(index,e){
  47. //汇总行百分比初始化(实际/审核费用)
  48. setTrPercentCell1(e);
  49. });
  50. }
  51. //累计 = 所有小计的和 totalType='subtotal'(实际上计算应该是计算的totalType='sum')
  52. function setTotalCell(index){
  53. if(index < $('.totaltr').find('.sumCell').length){//28
  54. var totalvalue = 0;
  55. for(var i=0; i<$('.edittr').length; i++){
  56. var editcellval;
  57. if($('.edittr').eq(i).find('[totalType="sum"]')[index].tagName == "SPAN"){
  58. editcellval = $('.edittr').eq(i).find('[totalType="sum"]').eq(index).html();
  59. }else{
  60. editcellval = $('.edittr').eq(i).find('td[totalType="sum"]').eq(index).html();
  61. }
  62. if(typeof(editcellval) != "undefined")
  63. totalvalue += Number(editcellval);
  64. }
  65. if(totalvalue != 0){
  66. $('.totaltr').find('.sumCell').eq(index).html(numFormat(totalvalue) + '');
  67. }
  68. }
  69. }
  70. //小计=上面所有totalType='sum' 的td的和
  71. function setSubTotalCell(companyid,classname,index){
  72. var totalvalue = 0;
  73. for(var i=0; i<$('.edittr.'+companyid +' .'+classname).length; i++){
  74. var subcellval;
  75. if($('.edittr.'+companyid +' .'+classname).eq(i).find("INPUT").length > 0){
  76. subcellval = $('.edittr.'+companyid +' .'+classname).eq(i).val();
  77. }else{
  78. subcellval = $('.edittr.'+companyid +' .'+classname).eq(i).html();
  79. }
  80. if(typeof(subcellval) != "undefined")
  81. totalvalue += Number(subcellval);
  82. }
  83. if(totalvalue != 0){
  84. $('.subtotal').find('td[totalType="subtotal"]').eq(index).html(numFormat(totalvalue) + '');
  85. }
  86. }
  87. //计算整行的总和
  88. function setRowSumCell(tr){
  89. $(tr).find(".rowSumCell").each(function(index,e){
  90. var totalvalue = 0;
  91. var sumtype = $(e).attr('class').split(' ')[2] + '_';
  92. for(var i=1; i<13; i++){
  93. var editcellval = $(tr).find("."+sumtype+i).html();
  94. if(typeof(editcellval) != "undefined"){
  95. totalvalue += Number(editcellval);
  96. }
  97. }
  98. $(e).html(numFormat(totalvalue) + '');
  99. });
  100. }
  101. //小计这一行的计算
  102. function setRowSumCell2(tr){
  103. $(tr).find(".rowSumCell").each(function(index,e){
  104. var totalvalue = 0;
  105. var sumtype = $(e).attr('class').split(' ')[2] + '_';
  106. for(var i=1; i<13; i++){
  107. var editcellval = $(tr).find("."+sumtype+i).html();
  108. if(typeof(editcellval) != "undefined"){
  109. totalvalue += Number(editcellval);
  110. }
  111. }
  112. $(e).html(numFormat(totalvalue) + '');
  113. });
  114. }
  115. //计算百分比
  116. function setTrPercentCell(tr){
  117. $(tr).find("td.percentCell").each(function(index,e){
  118. var num1 = $(tr).find("td."+$(e).attr("num1")).html();
  119. var num2 = $(tr).find("td."+$(e).attr("num2")).html();
  120. var result = percentage(num1, num2);
  121. $(e).html(result);
  122. });
  123. }
  124. //累计计算百分比
  125. function setTrPercentCell1(tr){
  126. $(tr).find("td>.percentCell").each(function(index,e){
  127. var num1,num2;
  128. if($(tr).find("td>."+$(e).attr("num1"))[0].tagName == "INPUT"){
  129. num1 = $(tr).find("td>."+$(e).attr("num1")).val();
  130. }else if($(tr).find("td>."+$(e).attr("num1"))[0].tagName == "SPAN"){
  131. num1 = $(tr).find("td>."+$(e).attr("num1")).html();
  132. }
  133. if($(tr).find("td>."+$(e).attr("num2"))[0].tagName == "INPUT"){
  134. num2 = $(tr).find("td>."+$(e).attr("num2")).val();
  135. }else if($(tr).find("td>."+$(e).attr("num2"))[0].tagName == "SPAN"){
  136. num2 = $(tr).find("td>."+$(e).attr("num2")).html();
  137. }
  138. var result = percentage(num1, num2);
  139. if(e.tagName == "INPUT") $(e).val(result);
  140. else if(e.tagName == "SPAN") $(e).html(result);
  141. });
  142. }
  143. function percentage(num1, num2){
  144. var percent = "";
  145. if(!isNaN(Number(num1)) && !isNaN(Number(num2)) && Number(num2) != "0" )
  146. // percent = Math.round(Number(num1) / Number(num2) * 10000) / 100.00 + "%";
  147. percent = Math.round(Number(num1) / Number(num2) * 100);
  148. return percent;
  149. }
  150. //数字格式化
  151. function numFormat(num){
  152. if(!isNaN(Number(num)) && Number(num) != "0"){
  153. if(num<10) num = Number(num).toFixed(1);
  154. else num = Math.round(Number(num));
  155. }
  156. return num;
  157. }
  158. $(function(){
  159. tableInit();
  160. });