util.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. var util = (function($){
  2. function tipHtml(state,text,time){
  3. var html='<div class="tipHtml">';
  4. if(state){
  5. if(state=='loading'){
  6. html+='<div class="icon weui-icon_toast weui-icon-'+state+'"></div>';
  7. }else{
  8. html+='<div class="icon weui-icon-'+state+'"></div>';
  9. }
  10. }
  11. html+='<div>'+ text +'</div>';
  12. html+='</div>'
  13. html+='<div class="mark"></div>'
  14. $("body").append(html)
  15. if(time && typeof time=='number'){
  16. setTimeout(function(){
  17. $(".tipHtml").remove()
  18. },time)
  19. }
  20. }
  21. //旋转动画
  22. function loading(ele){
  23. html='<div class="loader-inner ball-clip-rotate">'
  24. html+='<div class="weui-icon-loading"></div>'
  25. html+='</div>';
  26. ele.append(html)
  27. }
  28. function hideLoading(){
  29. $(".loader-inner").remove()
  30. }
  31. //隐藏提示
  32. function hideTip(){
  33. $(".tipHtml").remove()
  34. $(".mark").remove()
  35. }
  36. function numAdd(num1, num2) {
  37. var baseNum, baseNum1, baseNum2;
  38. try {
  39. baseNum1 = num1.toString().split(".")[1].length;
  40. } catch (e) {
  41. baseNum1 = 0;
  42. }
  43. try {
  44. baseNum2 = num2.toString().split(".")[1].length;
  45. } catch (e) {
  46. baseNum2 = 0;
  47. }
  48. baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));
  49. return (num1 * baseNum + num2 * baseNum) / baseNum;
  50. };
  51. /**
  52. * 减法运算,避免数据相减小数点后产生多位数和计算精度损失。
  53. *
  54. * @param num1被减数 | num2减数
  55. */
  56. function numSub(num1, num2) {
  57. var baseNum, baseNum1, baseNum2;
  58. var precision;// 精度
  59. try {
  60. baseNum1 = num1.toString().split(".")[1].length;
  61. } catch (e) {
  62. baseNum1 = 0;
  63. }
  64. try {
  65. baseNum2 = num2.toString().split(".")[1].length;
  66. } catch (e) {
  67. baseNum2 = 0;
  68. }
  69. baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));
  70. precision = (baseNum1 >= baseNum2) ? baseNum1 : baseNum2;
  71. return ((num1 * baseNum - num2 * baseNum) / baseNum).toFixed(precision);
  72. };
  73. /**
  74. * 乘法运算,避免数据相乘小数点后产生多位数和计算精度损失。
  75. *
  76. * @param num1被乘数 | num2乘数
  77. */
  78. function numMulti(num1, num2) {
  79. var baseNum = 0;
  80. try {
  81. baseNum += num1.toString().split(".")[1].length;
  82. } catch (e) {
  83. }
  84. try {
  85. baseNum += num2.toString().split(".")[1].length;
  86. } catch (e) {
  87. }
  88. return Number(num1.toString().replace(".", "")) * Number(num2.toString().replace(".", "")) / Math.pow(10, baseNum);
  89. };
  90. /**
  91. * 除法运算,避免数据相除小数点后产生多位数和计算精度损失。
  92. *
  93. * @param num1被除数 | num2除数
  94. */
  95. function numDiv(num1, num2) {
  96. var baseNum1 = 0, baseNum2 = 0;
  97. var baseNum3, baseNum4;
  98. try {
  99. baseNum1 = num1.toString().split(".")[1].length;
  100. } catch (e) {
  101. baseNum1 = 0;
  102. }
  103. try {
  104. baseNum2 = num2.toString().split(".")[1].length;
  105. } catch (e) {
  106. baseNum2 = 0;
  107. }
  108. //console.log(Math)
  109. baseNum3 = Number(num1.toString().replace(".", ""));
  110. baseNum4 = Number(num2.toString().replace(".", ""));
  111. return (baseNum3 / baseNum4) * Math.pow(10, baseNum2 - baseNum1);
  112. };
  113. return {
  114. tipHtml:tipHtml,
  115. hideTip:hideTip,
  116. loading:loading,
  117. numAdd:numAdd,
  118. numSub:numSub,
  119. numMulti:numMulti,
  120. numDiv:numDiv
  121. }
  122. })(jQuery)