const.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. // ========== COMMON - 公共模块 ==========
  2. /**
  3. * 与后端Terminal枚举一一对应
  4. */
  5. export const TerminalEnum = {
  6. UNKNOWN: 0, // 未知, 目的:在无法解析到 terminal 时,使用它
  7. WECHAT_MINI_PROGRAM: 10, //微信小程序
  8. WECHAT_WAP: 11, // 微信公众号
  9. H5: 20, // H5 网页
  10. APP: 31, // 手机 App
  11. };
  12. /**
  13. * 将 uni-app 提供的平台转换为后端所需的 terminal值
  14. *
  15. * @return 终端
  16. */
  17. export const getTerminal = () => {
  18. const platformType = uni.getAppBaseInfo().uniPlatform;
  19. // 与后端terminal枚举一一对应
  20. switch (platformType) {
  21. case 'app':
  22. return TerminalEnum.APP;
  23. case 'web':
  24. return TerminalEnum.H5;
  25. case 'mp-weixin':
  26. return TerminalEnum.WECHAT_MINI_PROGRAM;
  27. default:
  28. return TerminalEnum.UNKNOWN;
  29. }
  30. };
  31. // ========== MALL - 营销模块 ==========
  32. import dayjs from 'dayjs';
  33. /**
  34. * 优惠类型枚举
  35. */
  36. export const PromotionDiscountTypeEnum = {
  37. PRICE: {
  38. type: 1,
  39. name: '满减',
  40. },
  41. PERCENT: {
  42. type: 2,
  43. name: '折扣',
  44. },
  45. };
  46. /**
  47. * 优惠劵模板的有限期类型的枚举
  48. */
  49. export const CouponTemplateValidityTypeEnum = {
  50. DATE: {
  51. type: 1,
  52. name: '固定日期可用',
  53. },
  54. TERM: {
  55. type: 2,
  56. name: '领取之后可用',
  57. },
  58. };
  59. // 时间段的状态枚举
  60. export const TimeStatusEnum = {
  61. WAIT_START: '即将开始',
  62. STARTED: '进行中',
  63. END: '已结束',
  64. };
  65. /**
  66. * 微信小程序的订阅模版
  67. */
  68. export const WxaSubscribeTemplate = {
  69. TRADE_ORDER_DELIVERY: '订单发货通知',
  70. PROMOTION_COMBINATION_SUCCESS: '拼团结果通知',
  71. PAY_WALLET_RECHARGER_SUCCESS: '充值成功通知',
  72. };
  73. export const PromotionActivityTypeEnum = {
  74. NORMAL: {
  75. type: 0,
  76. name: '普通',
  77. },
  78. SECKILL: {
  79. type: 1,
  80. name: '秒杀',
  81. },
  82. BARGAIN: {
  83. type: 2,
  84. name: '砍价',
  85. },
  86. COMBINATION: {
  87. type: 3,
  88. name: '拼团',
  89. },
  90. POINT: {
  91. type: 4,
  92. name: '积分商城',
  93. },
  94. };
  95. /** 配送方式枚举 */
  96. export const DeliveryTypeEnum = {
  97. EXPRESS: { type: 1, name: '快递发货' },
  98. PICK_UP: { type: 2, name: '用户自提' },
  99. };
  100. export const getTimeStatusEnum = (startTime, endTime) => {
  101. const now = dayjs();
  102. if (now.isBefore(startTime)) {
  103. return TimeStatusEnum.WAIT_START;
  104. } else if (now.isAfter(endTime)) {
  105. return TimeStatusEnum.END;
  106. } else {
  107. return TimeStatusEnum.STARTED;
  108. }
  109. };
  110. /**
  111. * 分享页枚举
  112. * 按需扩展
  113. * */
  114. export const SharePageEnum = {
  115. HOME: {
  116. name: '首页',
  117. page: '/pages/index/index',
  118. value: '1',
  119. },
  120. GOODS: {
  121. name: '普通商品页',
  122. page: '/pages/goods/index',
  123. value: '2',
  124. },
  125. GROUPON: {
  126. name: '拼团商品页',
  127. page: '/pages/goods/groupon',
  128. value: '3',
  129. },
  130. SECKILL: {
  131. name: '秒杀商品页',
  132. page: '/pages/goods/seckill',
  133. value: '4',
  134. },
  135. GROUPON_DETAIL: {
  136. name: '参与拼团页',
  137. page: '/pages/activity/groupon/detail',
  138. value: '5',
  139. },
  140. POINT: {
  141. name: '积分商品页',
  142. page: '/pages/goods/point',
  143. value: '6',
  144. },
  145. };