137 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			137 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
| // ========== COMMON - 公共模块 ==========
 | |
| 
 | |
| /**
 | |
|  * 与后端Terminal枚举一一对应
 | |
|  */
 | |
| export const TerminalEnum = {
 | |
|   UNKNOWN: 0, // 未知, 目的:在无法解析到 terminal 时,使用它
 | |
|   WECHAT_MINI_PROGRAM: 10, //微信小程序
 | |
|   WECHAT_WAP: 11, // 微信公众号
 | |
|   H5: 20, // H5 网页
 | |
|   APP: 31, // 手机 App
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * 将 uni-app 提供的平台转换为后端所需的 terminal值
 | |
|  *
 | |
|  * @return 终端
 | |
|  */
 | |
| export const getTerminal = () => {
 | |
|   const platformType = uni.getSystemInfoSync().uniPlatform;
 | |
|   // 与后端terminal枚举一一对应
 | |
|   switch (platformType) {
 | |
|     case 'app':
 | |
|       return TerminalEnum.APP;
 | |
|     case 'web':
 | |
|       return TerminalEnum.H5;
 | |
|     case 'mp-weixin':
 | |
|       return TerminalEnum.WECHAT_MINI_PROGRAM;
 | |
|     default:
 | |
|       return TerminalEnum.UNKNOWN;
 | |
|   }
 | |
| };
 | |
| 
 | |
| // ========== MALL - 营销模块 ==========
 | |
| 
 | |
| import dayjs from 'dayjs';
 | |
| 
 | |
| /**
 | |
|  * 优惠类型枚举
 | |
|  */
 | |
| export const PromotionDiscountTypeEnum = {
 | |
|   PRICE: {
 | |
|     type: 1,
 | |
|     name: '满减',
 | |
|   },
 | |
|   PERCENT: {
 | |
|     type: 2,
 | |
|     name: '折扣',
 | |
|   },
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * 优惠劵模板的有限期类型的枚举
 | |
|  */
 | |
| export const CouponTemplateValidityTypeEnum = {
 | |
|   DATE: {
 | |
|     type: 1,
 | |
|     name: '固定日期可用',
 | |
|   },
 | |
|   TERM: {
 | |
|     type: 2,
 | |
|     name: '领取之后可用',
 | |
|   },
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * 营销的商品范围枚举
 | |
|  */
 | |
| export const PromotionProductScopeEnum = {
 | |
|   ALL: {
 | |
|     scope: 1,
 | |
|     name: '通用劵',
 | |
|   },
 | |
|   SPU: {
 | |
|     scope: 2,
 | |
|     name: '商品劵',
 | |
|   },
 | |
|   CATEGORY: {
 | |
|     scope: 3,
 | |
|     name: '品类劵',
 | |
|   },
 | |
| };
 | |
| 
 | |
| 
 | |
| // 时间段的状态枚举
 | |
| export const TimeStatusEnum = {
 | |
|   WAIT_START: '即将开始',
 | |
|   STARTED: '进行中',
 | |
|   END: '已结束',
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * 微信小程序的订阅模版
 | |
|  */
 | |
| export const WxaSubscribeTemplate = {
 | |
|   TRADE_ORDER_DELIVERY: '订单发货通知',
 | |
|   PROMOTION_COMBINATION_SUCCESS: '拼团结果通知',
 | |
|   PAY_WALLET_RECHARGER_SUCCESS: '充值成功通知',
 | |
| };
 | |
| export const PromotionActivityTypeEnum = {
 | |
|   NORMAL: {
 | |
|     type: 0,
 | |
|     name: '普通',
 | |
|   },
 | |
|   SECKILL: {
 | |
|     type: 1,
 | |
|     name: '秒杀',
 | |
|   },
 | |
|   BARGAIN: {
 | |
|     type: 2,
 | |
|     name: '砍价',
 | |
|   },
 | |
|   COMBINATION: {
 | |
|     type: 3,
 | |
|     name: '拼团',
 | |
|   },
 | |
|   POINT: {
 | |
|     type: 4,
 | |
|     name: '积分商城',
 | |
|   },
 | |
| };
 | |
| /** 配送方式枚举 */
 | |
| export const DeliveryTypeEnum = {
 | |
|   EXPRESS: { type: 1, name: '快递发货' },
 | |
|   PICK_UP: { type: 2, name: '用户自提' },
 | |
| };
 | |
| export const getTimeStatusEnum = (startTime, endTime) => {
 | |
|   const now = dayjs();
 | |
|   if (now.isBefore(startTime)) {
 | |
|     return TimeStatusEnum.WAIT_START;
 | |
|   } else if (now.isAfter(endTime)) {
 | |
|     return TimeStatusEnum.END;
 | |
|   } else {
 | |
|     return TimeStatusEnum.STARTED;
 | |
|   }
 | |
| };
 |