utils.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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. consume.discountFee = consume.hasOwnProperty('discountFee') ? consume.discountFee : Math.min(consume.defaultDiscountTime, consume.maxDiscountTime) * orderDetail.parkingRule.hourPrice || 0
  23. orderDetail.discountInfo.consume = [{
  24. ...consume,
  25. selected: consume.hasOwnProperty('selected') ? consume.selected : consume?.defaultSelected || false
  26. }]
  27. }
  28. break
  29. case 'points':
  30. // 如果是积分减免
  31. if ( orderDetail.discountInfo?.points?.length ) {
  32. const [points] = orderDetail.discountInfo?.points;
  33. if ( !points?.discountFee ) {
  34. points.discountFee = (points.hasOwnProperty('defaultDiscountTime')? points.defaultDiscountTime : points.discountTime ) * orderDetail.parkingRule.hourPrice || 0
  35. }
  36. orderDetail.discountInfo.points = [{
  37. ...points,
  38. selected: points.hasOwnProperty('discountFee')
  39. }]
  40. }
  41. break
  42. case 'paperCoupons':
  43. // 如果是纸质优惠券的话
  44. if ( orderDetail.discountInfo?.paperCoupons?.length ) {
  45. const [paperCoupons] = orderDetail.discountInfo?.paperCoupons;
  46. orderDetail.discountInfo.paperCoupons = [{
  47. ...paperCoupons,
  48. selected: paperCoupons.hasOwnProperty('selected') ? paperCoupons.selected : paperCoupons?.defaultSelected || false
  49. }]
  50. }
  51. break
  52. case 'coupons':
  53. // 如果是电子优惠券的话
  54. if ( orderDetail.discountInfo?.coupons?.length ) {
  55. orderDetail.discountInfo.coupons = orderDetail.discountInfo.coupons.map(elm => {
  56. return {
  57. ...elm,
  58. selected: elm.hasOwnProperty('selected') ? elm.selected : elm?.defaultSelected || false
  59. }
  60. })
  61. }
  62. break
  63. case 'newMemberPoints':
  64. // 如果是新会员积分
  65. if ( orderDetail.discountInfo?.newMemberPoints?.newMember ) {
  66. orderDetail.discountInfo.newMemberPoints = {
  67. ...orderDetail.discountInfo.newMemberPoints,
  68. selected: orderDetail.discountInfo.newMemberPoints.hasOwnProperty('selected') ? orderDetail.discountInfo.newMemberPoints.selected : orderDetail.discountInfo.newMemberPoints?.discountFee > 0 || false
  69. }
  70. }
  71. break
  72. }
  73. }
  74. if ( typeof types === 'string' ) {
  75. run(types)
  76. }
  77. if ( isArray(types) ) {
  78. types.forEach(key => {
  79. run(key)
  80. })
  81. }
  82. }