utils.js 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. import { isArray } from "lodash";
  2. export function setSelected( types,orderDetail ) {
  3. function run( name ) {
  4. switch ( name ) {
  5. case 'memberGrade':
  6. // 如果是会员等级减免
  7. if ( orderDetail.discountInfo?.memberGrade?.length ) {
  8. const [memberGrade] = orderDetail.discountInfo?.memberGrade;
  9. if ( !memberGrade?.discountFee ) {
  10. memberGrade.discountFee = (memberGrade.hasOwnProperty('defaultDiscountTime')? memberGrade.defaultDiscountTime : memberGrade.discountTime ) * orderDetail.parkingRule.hourPrice || 0
  11. }
  12. orderDetail.discountInfo.memberGrade = [{
  13. ...memberGrade,
  14. selected: memberGrade.hasOwnProperty('selected') ? memberGrade.selected : memberGrade?.defaultSelected || false
  15. }]
  16. }
  17. break
  18. case 'consume':
  19. // 如果是消费减免
  20. if ( orderDetail.discountInfo?.consume?.length ) {
  21. const [consume] = orderDetail.discountInfo?.consume;
  22. if (consume.hasOwnProperty('defaultDiscountTime') && consume.hasOwnProperty('maxDiscountTime')) {
  23. consume.discountFee = consume.hasOwnProperty('discountFee') ? consume.discountFee : Math.min(consume.defaultDiscountTime, consume.maxDiscountTime) * orderDetail.parkingRule.hourPrice || 0
  24. } else {
  25. consume.discountFee = consume.hasOwnProperty('discountFee') ? consume.discountFee : consume.defaultDiscountTime * orderDetail.parkingRule.hourPrice || 0
  26. }
  27. orderDetail.discountInfo.consume = [{
  28. ...consume,
  29. selected: consume.hasOwnProperty('selected') ? consume.selected : consume?.defaultSelected || false
  30. }]
  31. }
  32. break
  33. case 'points':
  34. // 如果是积分减免
  35. if ( orderDetail.discountInfo?.points?.length ) {
  36. const [points] = orderDetail.discountInfo?.points;
  37. if ( !points?.discountFee ) {
  38. points.discountFee = (points.hasOwnProperty('defaultDiscountTime')? points.defaultDiscountTime : points.discountTime ) * orderDetail.parkingRule.hourPrice || 0
  39. }
  40. orderDetail.discountInfo.points = [{
  41. ...points,
  42. selected: points.hasOwnProperty('discountFee')
  43. }]
  44. }
  45. break
  46. case 'paperCoupons':
  47. // 如果是纸质优惠券的话
  48. if ( orderDetail.discountInfo?.paperCoupons?.length ) {
  49. const [paperCoupons] = orderDetail.discountInfo?.paperCoupons;
  50. orderDetail.discountInfo.paperCoupons = [{
  51. ...paperCoupons,
  52. selected: paperCoupons.hasOwnProperty('selected') ? paperCoupons.selected : paperCoupons?.defaultSelected || false
  53. }]
  54. }
  55. break
  56. case 'coupons':
  57. // 如果是电子优惠券的话
  58. if ( orderDetail.discountInfo?.coupons?.length ) {
  59. orderDetail.discountInfo.coupons = orderDetail.discountInfo.coupons.map(elm => {
  60. return {
  61. ...elm,
  62. selected: elm.hasOwnProperty('selected') ? elm.selected : elm?.defaultSelected || false
  63. }
  64. })
  65. }
  66. break
  67. case 'newMemberPoints':
  68. // 如果是新会员积分
  69. if ( orderDetail.discountInfo?.newMemberPoints?.newMember ) {
  70. orderDetail.discountInfo.newMemberPoints = {
  71. ...orderDetail.discountInfo.newMemberPoints,
  72. selected: orderDetail.discountInfo.newMemberPoints.hasOwnProperty('selected') ? orderDetail.discountInfo.newMemberPoints.selected : orderDetail.discountInfo.newMemberPoints?.discountFee > 0 || false
  73. }
  74. }
  75. break
  76. }
  77. }
  78. if ( typeof types === 'string' ) {
  79. run(types)
  80. }
  81. if ( isArray(types) ) {
  82. types.forEach(key => {
  83. run(key)
  84. })
  85. }
  86. }