Files
zt-closet-wxmini-frontend/miniprogram/utils/config.ts
T
2026-09-13 02:28:46 +08:00

178 lines
4.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 全局配置与常量
// 后端服务域名(不含 /api/v1 前缀、不含结尾斜杠)
export const BASE_URL = 'https://zt-closet-backend.lzcwy.cn'
// API 统一前缀
export const API_PREFIX = '/api/v1'
// 本地存储 key
export const STORAGE_KEYS = {
ACCESS_TOKEN: 'zt_closet_access_token',
REFRESH_TOKEN: 'zt_closet_refresh_token',
EXPIRE_TIME: 'zt_closet_expire_time',
USER_INFO: 'zt_closet_user_info',
UNREAD: 'zt_closet_unread',
OPEN_COLLECT: 'zt_open_collect',
}
// 衣物图片处理状态
export enum ProcessStatus {
MATTING = 1, // 抠图中
CLASSIFYING = 2, // 分类中
QUEUED = 3, // 排队中
SUCCESS = 4, // 成功
FAILED = 5, // 失败
}
// 订单状态
export enum OrderStatus {
PENDING = 1, // 待支付
PAID = 2, // 已支付
CANCELLED = 3, // 已取消
EXPIRED = 4, // 已过期
REFUNDED = 5, // 已退款
}
// 额度类型
export enum QuotaType {
UPLOAD = 1, // 上传
AI = 2, // AI 推荐
OUTFIT_SHARE = 3, // 社区分享(搭配分享)
CLOSET_SHARE = 4, // 衣柜分享
}
// 通知类型
export enum MsgType {
LIKE = 1, // 点赞通知
ORDER = 2, // 订单通知
SYSTEM = 3, // 系统通知
}
// 穿搭来源
export enum OutfitSource {
USER = 1, // 用户创建
AI = 2, // AI 推荐
}
// 公开状态
export enum IsPublic {
PRIVATE = 1, // 不公开
PUBLIC = 2, // 公开
}
// 穿搭审核状态
export enum AuditStatus {
PENDING = 1, // 待审核
PASS = 2, // 审核通过
REJECT = 3, // 审核不通过
}
// 衣柜分享状态
export enum ShareStatus {
NORMAL = 1, // 正常
CANCELLED = 2, // 已取消
EXPIRED = 3, // 已过期
BANNED = 4, // 已封禁
}
// 分享类型
export enum ShareType {
PARTIAL = 1, // 部分衣物
FULL = 2, // 全量快照
}
// 商品类型
export enum GoodsType {
MEMBER = 1, // 会员包
UPLOAD = 2, // 上传包
AI = 3, // AI 推荐包
CLOSET_SHARE = 4, // 衣柜分享包
OUTFIT_SHARE = 5, // 搭配分享包
}
// 额度名称映射
export const QUOTA_NAMES: Record<number, string> = {
[QuotaType.UPLOAD]: '上传额度',
[QuotaType.AI]: 'AI 推荐额度',
[QuotaType.OUTFIT_SHARE]: '社区分享额度',
[QuotaType.CLOSET_SHARE]: '衣柜分享额度',
}
// 商品类型名称映射
export const GOODS_TYPE_NAMES: Record<number, string> = {
[GoodsType.MEMBER]: '会员',
[GoodsType.UPLOAD]: '上传',
[GoodsType.AI]: 'AI 推荐',
[GoodsType.CLOSET_SHARE]: '衣柜分享',
[GoodsType.OUTFIT_SHARE]: '搭配分享',
}
// 错误码统一文案(兜底,优先展示服务端 details[0])
export const ERROR_MESSAGES: Record<number, string> = {
80000: '额度不足',
80001: '额度记录不存在',
90401: 'AI 推荐次数已达上限',
90400: 'AI 推荐失败',
90300: '运势生成中,请稍后重试',
10003: '操作过于频繁,请稍后重试',
11000: '请先登录',
11001: '登录状态已失效',
11002: '登录状态已过期',
11004: '请先登录',
12000: '无权限操作',
21001: '账号已被禁用',
22000: '用户不存在',
30000: '上传文件为空',
30001: '不支持的文件类型',
30002: '文件大小超过限制',
50000: '衣物不存在',
50001: '该衣物已被搭配使用,无法删除',
50005: '无权操作该衣物',
40000: '穿搭不存在',
40004: '无权操作该穿搭',
60000: '商品不存在',
60001: '商品已下架',
70000: '订单不存在',
70001: '订单状态不正确',
70002: '订单已支付',
70005: '虚拟支付未开通',
70006: '商品尚未发布为虚拟支付道具',
70007: '虚拟支付订单不支持取消',
70008: 'iOS 虚拟支付最低 1 元',
70009: '订单真实性校验失败',
71001: '当前状态不允许退款',
71004: 'iOS 订单请通过 App Store 申请退款',
79003: '创建虚拟支付订单失败',
90100: '分享不存在',
90101: '分享已过期',
90102: '分享已取消',
90200: '目标内容不存在',
19000: '服务繁忙,请稍后重试',
19001: '服务繁忙,请稍后重试',
19002: '服务繁忙,请稍后重试',
19003: '服务繁忙,请稍后重试',
19999: '服务繁忙,请稍后重试',
}
// ===== 日志配置 =====
// 注意:本文件保持零 import(纯常量),LogLevel 定义在此以避免 config→logger→config 循环依赖
// 日志级别:数值越大越严重,低于当前级别的日志不输出
export enum LogLevel {
DEBUG = 0,
INFO = 1,
WARN = 2,
ERROR = 3,
SILENT = 4, // 全部关闭
}
// 全局日志级别开关:
// null = 按运行环境自动判定(develop=DEBUG / trial=INFO / release=WARN)
// LogLevel.DEBUG = 手动写死,临时调级用(调试完记得改回 null)
export const LOG_LEVEL: LogLevel | null = null
// 是否写入微信实时日志(真机可在小程序后台「实时日志」查看线上问题)
// 仅 WARN 及以上写入,避免击穿实时日志配额
export const LOG_TO_REALTIME = true