calc_fees.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /**
  2. * Created by Mai on 2017/7/21.
  3. */
  4. let calcFees = {
  5. findFee: function (data, fieldName) {
  6. if (!data.fees) {
  7. data.fees = [];
  8. }
  9. for (let fee of data.fees) {
  10. if (fee.fieldName === fieldName) {
  11. return fee;
  12. }
  13. }
  14. return null;
  15. },
  16. AddFee: function (data, fieldName) {
  17. let fee = {
  18. 'fieldName': fieldName,
  19. 'unitFee': 0,
  20. 'totalFee': 0,
  21. 'tenderUnitFee': 0,
  22. 'tenderTotalFee': 0
  23. };
  24. data.fees.push(fee);
  25. data.feesIndex[fieldName] = fee;
  26. },
  27. checkFields: function (data, fields) {
  28. if (!data.fees) {
  29. data.fees = [];
  30. data.feesIndex = {};
  31. }
  32. for (let field of fields) {
  33. if (!this.findFee(data, field.type)) {
  34. this.AddFee(data, field.type);
  35. }
  36. }
  37. },
  38. getFee: function (data, fullField) {
  39. let fields = fullField.split('.'), value = data;
  40. for (let field of fields) {
  41. if (value[field]) {
  42. value = value[field];
  43. } else {
  44. return 0;
  45. }
  46. }
  47. return value;
  48. },
  49. getFeeSplit: function (data, fullFields) {
  50. let value = data;
  51. for (let field of fullFields) {
  52. if (value[field]) {
  53. value = value[field];
  54. } else {
  55. return 0;
  56. }
  57. }
  58. return value;
  59. }
  60. }