order-payment-display.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /** 订单列表/详情:支付方式与支付或结算说明(与后端 paymentMethod / payStatus / clientSettlementStatus 对齐) */
  2. export function paymentMethodLabel(method) {
  3. const raw =
  4. method &&
  5. typeof method === 'object' &&
  6. ('paymentMethod' in method || 'payment_method' in method)
  7. ? method.paymentMethod ?? method.payment_method
  8. : method
  9. const m = String(raw || 'online')
  10. .trim()
  11. .toLowerCase()
  12. return m === 'offline' ? '线下支付' : '线上支付'
  13. }
  14. /**
  15. * @param {{ paymentMethod?: string, payStatus?: string, clientSettlementStatus?: string }} order
  16. */
  17. export function paymentOrSettlementSubLabel(order) {
  18. const m = String(order?.paymentMethod || 'online')
  19. .trim()
  20. .toLowerCase()
  21. if (m === 'offline') {
  22. return order?.clientSettlementStatus === 'settled' ? '已结算' : '待结算'
  23. }
  24. const ps = String(order?.payStatus || 'pending_payment').trim()
  25. const map = {
  26. paid: '支付成功',
  27. pending_payment: '待支付',
  28. refunding: '退款中',
  29. refunded: '已退款',
  30. }
  31. return map[ps] || ps
  32. }
  33. export function paymentOrSettlementLabelTitle(order) {
  34. const m = String(order?.paymentMethod || 'online')
  35. .trim()
  36. .toLowerCase()
  37. return m === 'offline' ? '结算状态' : '支付状态'
  38. }
  39. export function paymentSubLabelClass(order) {
  40. const m = String(order?.paymentMethod || 'online')
  41. .trim()
  42. .toLowerCase()
  43. if (m === 'offline') {
  44. return order?.clientSettlementStatus === 'settled' ? 'settled' : 'pending'
  45. }
  46. const ps = String(order?.payStatus || 'pending_payment').trim()
  47. if (ps === 'paid') return 'settled'
  48. if (ps === 'refunding' || ps === 'refunded') return 'warn'
  49. return 'pending'
  50. }