annual_comp_sumtable_view.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. var flag = false;
  2. subtotal();
  3. function editData(){
  4. if(editflag == 0){
  5. $('#editbutton').html('编辑中');
  6. $(".editInput").removeAttr("readonly");
  7. editflag = 1;
  8. $('#save').removeAttr('disabled');
  9. $('#save').unbind().bind('click',function(){
  10. saveTableData();
  11. });
  12. }else if(editflag == 1){
  13. $('#editbutton').html('编辑');
  14. $(".editInput").attr("readonly","readonly" );
  15. editflag = 0;
  16. $('#save').attr('disabled','disabled');
  17. $('#save').unbind();
  18. }
  19. }
  20. function saveTableData(){
  21. flag = false;
  22. var tabledata = formData();
  23. if(flag){return;}
  24. $.ajax({
  25. type : "post",
  26. url : locat+'/annualPlanKG/saveAuditFee.do',
  27. data:{inputData:JSON.stringify(tabledata)},
  28. dataType : 'json',
  29. success : function(data){
  30. $("#serarchForm").submit();
  31. },
  32. error:function(data){
  33. editflag = 0;
  34. editData();
  35. tipInfo("保存失败");
  36. }
  37. });
  38. }
  39. function formData(){
  40. /*var mapArry = $("#Form").serializeArray();
  41. var dataArry = [];
  42. var row = $('.edittr.date').length;
  43. var cellcount = mapArry.length/row;
  44. for(var i=0; i<row; i++){
  45. var recordmap = new Object();
  46. var isNullAuditFee = false;
  47. for(var j=0; j<cellcount; j++){
  48. var name = mapArry[i*cellcount+j].name;
  49. var val = mapArry[i*cellcount+j].value;
  50. recordmap[name] = val;
  51. //编制质量
  52. if(name == 'AUDIT_FEE'){
  53. if(val != '')
  54. editValue($('input[name="AUDIT_FEE"]').eq(i));
  55. else{
  56. //修改后数值为空,且初始化时也无数值
  57. if($('input[name="AUDIT_FEE"]').eq(i).attr('noEmpty') == undefined)
  58. isNullAuditFee = true;
  59. recordmap[name] = null;
  60. }
  61. }
  62. }
  63. if(!isNullAuditFee)
  64. dataArry.push(recordmap);
  65. }
  66. return dataArry;*/
  67. var dataArry = [];
  68. var objInputRow = document.getElementById("simple-table").getElementsByTagName("input");
  69. var myArray = makeArray(objInputRow);
  70. var trResult = split_array(myArray,6);
  71. //tr共有6个Input,都需要传入后台,保存;
  72. for (i = 0; i < trResult.length; i++) {
  73. var key = {};
  74. key.AUDIT_FEE = trResult[i][0].value !=""?numFormat(trResult[i][0].value):0;
  75. key.COMPANY_ID = trResult[i][1].value;
  76. key.COMPANY = trResult[i][2].value;
  77. key.ROAD = trResult[i][3].value;
  78. key.ROAD_ID = trResult[i][4].value;
  79. key.YEAR = trResult[i][5].value;
  80. dataArry.push(key);
  81. }
  82. return dataArry;
  83. }
  84. function subtotal(){
  85. //小计
  86. $('.subtotal').each(function(i,obj){
  87. var id = $(obj).attr('id');
  88. var totalvalue = 0;
  89. $('.edittr.'+id).find('input[name="AUDIT_FEE"]').each(function(n,o){
  90. totalvalue += Number($(o).val());
  91. });
  92. $(obj).find('.AUDIT_FEE').text(totalvalue);
  93. });
  94. //累计
  95. var sumValue = 0;
  96. $('.subtotal .AUDIT_FEE').each(function(i,obj){
  97. sumValue += Number($(obj).text().trim());
  98. });
  99. $('.totaltr .AUDIT_FEE').text(sumValue);
  100. }
  101. function editAuditFeeValue(e){
  102. var val = $(e).val();
  103. if(val == ''){
  104. subtotal();
  105. return;
  106. }
  107. if(!/^\d+(\.\d{1})?$/.test(val) || val == 0){
  108. $(e).tips({
  109. side : 3,
  110. msg : '数字格式不规范(大于0整数或一位小数)',
  111. bg : '#AE81FF',
  112. time : 2
  113. });
  114. flag = true;
  115. return;
  116. }
  117. subtotal();
  118. }
  119. function tipInfo(data){
  120. bootbox.dialog({
  121. message : "<span class='bigger-110'>"+data
  122. + "</span>",
  123. buttons : {
  124. "button" : {
  125. "label" : "确定",
  126. "className" : "btn-sm btn-success"
  127. }
  128. }
  129. });
  130. }
  131. //将数组分割成等长小数组
  132. function split_array(arr, len){
  133. var a_len = arr.length;
  134. var result = [];
  135. for(var i=0;i<a_len;i+=len){
  136. result.push(arr.slice(i,i+len));
  137. }
  138. return result;
  139. }
  140. //HTMLCollection转Array
  141. function makeArray(obj){
  142. var res = [];
  143. for(var i=0,len=obj.length; i<len; i++){
  144. res.push(obj[i]);
  145. }
  146. return res;
  147. }
  148. //格式化
  149. function numFormat(num){
  150. if(!isNaN(Number(num)) && Number(num) != "0"){
  151. if(num<10) num = Number(num).toFixed(1);
  152. else num = Math.round(Number(num));
  153. }
  154. return num;
  155. }