commonFunction.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /**
  2. * Created by yaobo on 2018/3/2.
  3. * 存放一些公用的全局方法
  4. */
  5. import Vue from 'vue';
  6. Vue.prototype.resetFormX = (formName) => {
  7. this.$refs[formName].resetFields();
  8. }
  9. // 浮点运算
  10. Vue.prototype.floatComputed = (arg1, arg2, sign) => {
  11. if (!arg1) {
  12. arg1 = 0;
  13. }
  14. if (!arg2) {
  15. arg2 = 0;
  16. }
  17. let val1 = arg1 + '';
  18. let val2 = arg2 + '';
  19. let rate = 1;
  20. let rate1 = 1;
  21. let rate2 = 1;
  22. if (val1.indexOf('.') < 0) {
  23. rate1 = 0;
  24. } else {
  25. rate1 = val1.length - val1.indexOf('.') - 1;
  26. }
  27. if (val2.indexOf('.') < 0) {
  28. rate2 = 0;
  29. } else {
  30. rate2 = val2.length - val2.indexOf('.') - 1;
  31. }
  32. rate = rate2;
  33. val2 = val2.replace('.', '');
  34. val1 = val1.replace('.', '');
  35. if (rate1 > rate2) {
  36. rate = rate1;
  37. for (let i = 0; i < rate1 - rate2; i++) {
  38. val2 = val2 + '0'
  39. }
  40. } else {
  41. for (let i = 0; i < rate2 - rate1; i++) {
  42. val1 = val1 + '0';
  43. }
  44. }
  45. let rateNum = Math.pow(10, rate);
  46. if (sign === '-') {
  47. return (Number(val1) - Number(val2)) / rateNum
  48. }
  49. if (sign === '+') {
  50. return (Number(val1) + Number(val2)) / rateNum
  51. }
  52. if (sign === '*') {
  53. return (Number(val1) * Number(val2)) / (rateNum * rateNum)
  54. }
  55. if (sign === '/') { // 默认保留4位
  56. let num = (Number(val1) / Number(val2)) + '';
  57. if (num.split('.').length > 0) {
  58. if (num.split('.')[1].length > 4) {
  59. num = Number(num).toFixed(4);
  60. }
  61. }
  62. return num;
  63. }
  64. return null;
  65. }