const.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  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.getSystemInfoSync().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. * 营销的产品范围枚举
  61. */
  62. export const PromotionProductScopeEnum = {
  63. ALL: {
  64. scope: 1,
  65. name: '通用劵',
  66. },
  67. SPU: {
  68. scope: 2,
  69. name: '产品劵',
  70. },
  71. CATEGORY: {
  72. scope: 3,
  73. name: '品类劵',
  74. },
  75. };
  76. // 时间段的状态枚举
  77. export const TimeStatusEnum = {
  78. WAIT_START: '即将开始',
  79. STARTED: '进行中',
  80. END: '已结束',
  81. };
  82. /**
  83. * 微信小程序的订阅模版
  84. */
  85. export const WxaSubscribeTemplate = {
  86. TRADE_ORDER_DELIVERY: '订单发货通知',
  87. PROMOTION_COMBINATION_SUCCESS: '拼团结果通知',
  88. PAY_WALLET_RECHARGER_SUCCESS: '充值成功通知',
  89. };
  90. export const PromotionActivityTypeEnum = {
  91. NORMAL: {
  92. type: 0,
  93. name: '普通',
  94. },
  95. SECKILL: {
  96. type: 1,
  97. name: '秒杀',
  98. },
  99. BARGAIN: {
  100. type: 2,
  101. name: '砍价',
  102. },
  103. COMBINATION: {
  104. type: 3,
  105. name: '拼团',
  106. },
  107. POINT: {
  108. type: 4,
  109. name: '积分商城',
  110. },
  111. };
  112. /** 配送方式枚举 */
  113. export const DeliveryTypeEnum = {
  114. EXPRESS: { type: 1, name: '快递发货' },
  115. PICK_UP: { type: 2, name: '用户自提' },
  116. };
  117. export const getTimeStatusEnum = (startTime, endTime) => {
  118. const now = dayjs();
  119. if (now.isBefore(startTime)) {
  120. return TimeStatusEnum.WAIT_START;
  121. } else if (now.isAfter(endTime)) {
  122. return TimeStatusEnum.END;
  123. } else {
  124. return TimeStatusEnum.STARTED;
  125. }
  126. };
  127. /**
  128. * 分享页枚举
  129. * 按需扩展
  130. * */
  131. export const SharePageEnum = {
  132. HOME: {
  133. name: '首页',
  134. page: '/pages/index/index',
  135. value: '1'
  136. },
  137. GOODS: {
  138. name: '普通产品页',
  139. page: '/pages/goods/index',
  140. value: '2'
  141. },
  142. GROUPON: {
  143. name: '拼团产品页',
  144. page: '/pages/goods/groupon',
  145. value: '3'
  146. },
  147. SECKILL: {
  148. name: '秒杀产品页',
  149. page: '/pages/goods/seckill',
  150. value: '4'
  151. },
  152. GROUPON_DETAIL: {
  153. name: '参与拼团页',
  154. page: '/pages/activity/groupon/detail',
  155. value: '5'
  156. },
  157. POINT: {
  158. name: '积分产品页',
  159. page: '/pages/goods/point',
  160. value: '6'
  161. }
  162. }