Files
danyang-match/miniapp/constants/statusEnums.js
T
WorkBuddy 8b505d9133
CI/CD Pipeline / Test Shell Guard (Phase 23 Gate) (push) Canceled after 0s
CI/CD Pipeline / Backend Build & Test (push) Canceled after 0s
CI/CD Pipeline / Admin Web Build (push) Canceled after 0s
CI/CD Pipeline / Mini Program Compile Check (push) Canceled after 0s
CI/CD Pipeline / Migration Validation (push) Canceled after 0s
CI/CD Pipeline / UI Contracts (source-structure gates) (push) Canceled after 0s
CI/CD Pipeline / E2E (live stack) (push) Canceled after 0s
feat: disable user messaging and retain公益 service guidance
2026-10-15 13:38:17 +08:00

216 lines
7.0 KiB
JavaScript
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.
/**
* 状态枚举常量(规范 §7-10, §22, §44-50, §66, §107)
*
* 全平台状态字符串统一在此定义,禁止页面散落魔法字符串。
* 状态决定权限,权限决定路由,路由承载任务。
*/
// ============ 资料完成状态(规范 §7) ============
exports.PROFILE_COMPLETION = {
NOT_STARTED: 'not_started',
IN_PROGRESS: 'in_progress',
COMPLETED: 'completed',
};
// ============ 资料审核状态(规范 §8) ============
exports.PROFILE_REVIEW = {
NOT_SUBMITTED: 'not_submitted',
PENDING: 'pending',
APPROVED: 'approved',
NEED_EDIT: 'need_edit',
REJECTED: 'rejected',
};
// ============ 账号状态(规范 §9) ============
exports.ACCOUNT_STATUS = {
NORMAL: 'normal',
REVIEWING_RISK: 'reviewing_risk',
LIMITED: 'limited',
SUSPENDED: 'suspended',
BANNED: 'banned',
CLOSED: 'closed',
};
// ============ 婚恋服务状态(规范 §10) ============
exports.RELATIONSHIP_STATUS = {
SEARCHING: 'searching', // 正在寻找
GETTING_TO_KNOW: 'getting_to_know', // 正在了解
PAUSED: 'paused', // 暂停寻找
MATCHED_SUCCESSFULLY: 'matched_successfully', // 成功牵手
SERVICE_EXITED: 'service_exited', // 退出婚恋服务
};
// ============ 推荐卡关系状态(规范 §22) ============
exports.RELATION_STATUS = {
NEUTRAL: 'neutral',
LIKED: 'liked',
PASSED: 'passed',
MUTUAL_MATCH: 'mutual_match',
BLOCKED: 'blocked',
UNMATCHED: 'unmatched',
};
// ============ 推荐列表加载状态(规范 §21) ============
exports.RECOMMENDATION_STATE = {
IDLE: 'idle',
LOADING: 'loading',
LOADED: 'loaded',
EMPTY: 'empty',
FINISHED: 'finished',
ERROR: 'error',
};
// ============ 活动状态(规范 §44) ============
exports.ACTIVITY_STATUS = {
DRAFT: 'draft',
REGISTRATION_OPEN: 'registration_open',
REGISTRATION_CLOSED: 'registration_closed',
ONGOING: 'ongoing',
ENDED: 'ended',
CANCELLED: 'cancelled',
};
// ============ 活动报名状态(规范 §45) ============
exports.REGISTRATION_STATUS = {
NOT_APPLIED: 'not_applied',
PENDING: 'pending',
APPROVED: 'approved',
REJECTED: 'rejected',
CANCELLED: 'cancelled',
};
// ============ 活动签到状态(规范 §47) ============
exports.CHECKIN_STATUS = {
NOT_CHECKED_IN: 'not_checked_in',
CHECKED_IN: 'checked_in',
};
// ============ 红娘服务状态(规范 §49) ============
exports.MATCHMAKER_SERVICE_STATUS = {
SUBMITTED: 'submitted',
ASSIGNED: 'assigned',
IN_SERVICE: 'in_service',
WAITING_USER: 'waiting_user',
COMPLETED: 'completed',
CANCELLED: 'cancelled',
};
// ============ 红娘推荐状态(规范 §50) ============
exports.MATCHMAKER_RECOMMENDATION_STATUS = {
PENDING_VIEW: 'pending_view',
VIEWED: 'viewed',
LIKED: 'liked',
PASSED: 'passed',
MUTUAL_MATCH: 'mutual_match',
EXPIRED: 'expired',
};
// ============ 聊天连接状态(规范 §104) ============
exports.CHAT_CONNECTION = {
DISCONNECTED: 'disconnected',
CONNECTING: 'connecting',
CONNECTED: 'connected',
RECONNECTING: 'reconnecting',
};
// ============ 消息发送状态(规范 §107) ============
exports.MESSAGE_SEND_STATUS = {
SENDING: 'sending',
SENT: 'sent',
FAILED: 'failed',
};
// ============ 图片状态(规范 §115) ============
exports.PHOTO_STATUS = {
LOCAL: 'local',
UPLOADING: 'uploading',
UPLOADED: 'uploaded',
FAILED: 'failed',
REVIEW_PENDING: 'review_pending',
};
// ============ 聊天气泡类型(规范 §62) ============
exports.CHAT_BUBBLE_TYPE = {
SELF: 'self',
OTHER: 'other',
SYSTEM: 'system',
};
// ============ 请求错误分类(规范 §79) ============
exports.REQUEST_ERROR = {
NETWORK_ERROR: 'network_error',
UNAUTHORIZED: 'unauthorized',
FORBIDDEN: 'forbidden',
BUSINESS_ERROR: 'business_error',
SERVER_ERROR: 'server_error',
MAINTENANCE: 'maintenance',
RATE_LIMITED: 'rate_limited',
};
// ============ 业务错误码 → 用户可理解文案(规范 §80-84) ============
exports.BUSINESS_ERROR_CODE = {
AUTH_EXPIRED: 'AUTH_EXPIRED',
PROFILE_NOT_APPROVED: 'PROFILE_NOT_APPROVED',
ACCOUNT_LIMITED: 'ACCOUNT_LIMITED',
TARGET_UNAVAILABLE: 'TARGET_UNAVAILABLE',
MATCH_REQUIRED: 'MATCH_REQUIRED',
ACTIVITY_FULL: 'ACTIVITY_FULL',
ACTIVITY_CLOSED: 'ACTIVITY_CLOSED',
ALREADY_APPLIED: 'ALREADY_APPLIED',
DUPLICATE_ACTION: 'DUPLICATE_ACTION',
};
// ============ 用户可理解文案映射 ============
exports.ERROR_USER_MESSAGE = {
[exports.REQUEST_ERROR.NETWORK_ERROR]: '网络好像有点问题,请检查网络后重试',
[exports.REQUEST_ERROR.UNAUTHORIZED]: '登录状态已过期,请重新登录',
[exports.REQUEST_ERROR.FORBIDDEN]: '无权限访问该功能',
[exports.REQUEST_ERROR.BUSINESS_ERROR]: '操作失败,请稍后重试',
[exports.REQUEST_ERROR.SERVER_ERROR]: '服务暂时不可用,请稍后再试',
[exports.REQUEST_ERROR.MAINTENANCE]: '平台正在维护,请稍后再试',
[exports.REQUEST_ERROR.RATE_LIMITED]: '请求过于频繁,请稍后重试',
[exports.BUSINESS_ERROR_CODE.AUTH_EXPIRED]: '登录状态已过期,请重新登录',
[exports.BUSINESS_ERROR_CODE.PROFILE_NOT_APPROVED]: '当前资料尚未通过审核',
[exports.BUSINESS_ERROR_CODE.ACCOUNT_LIMITED]: '账号已被限制,详情请查看账号状态',
[exports.BUSINESS_ERROR_CODE.TARGET_UNAVAILABLE]: '该用户当前不可查看或联系',
[exports.BUSINESS_ERROR_CODE.MATCH_REQUIRED]: '当前平台未提供用户间即时聊天功能',
[exports.BUSINESS_ERROR_CODE.ACTIVITY_FULL]: '本次活动报名人数已满',
[exports.BUSINESS_ERROR_CODE.ACTIVITY_CLOSED]: '本次活动报名已结束',
[exports.BUSINESS_ERROR_CODE.ALREADY_APPLIED]: '你已经提交过申请',
[exports.BUSINESS_ERROR_CODE.DUPLICATE_ACTION]: '操作已提交,请勿重复',
};
/**
* 将后端错误码/请求错误分类映射为用户可理解文案
* @param {string} code 错误码
* @param {string} [fallback] 后端原始 message(作为兜底)
* @returns {string} 用户可理解文案
*/
exports.mapErrorMessage = (code, fallback) => {
return exports.ERROR_USER_MESSAGE[code] || fallback || '操作失败,请稍后重试';
};
// ============ 状态徽章文案映射(StatusBadge 组件复用) ============
exports.STATUS_BADGE = {
VERIFIED: { label: '已实名', kind: 'success' },
REVIEWED: { label: '已审核', kind: 'success' },
REVIEWING: { label: '审核中', kind: 'warning' },
NEED_EDIT: { label: '需修改', kind: 'warning' },
SUCCESS: { label: '已完成', kind: 'success' },
PENDING: { label: '待处理', kind: 'warning' },
DANGER: { label: '高风险', kind: 'danger' },
DISABLED: { label: '已停用', kind: 'disabled' },
SERVICE: { label: '服务中', kind: 'info' },
};
// ============ 危险操作类型(Dialog/ConfirmDangerDialog 复用) ============
exports.DANGER_ACTION = {
BLOCK: 'block',
UNBLOCK: 'unblock',
UNMATCH: 'unmatch',
PAUSE: 'pause',
SUCCESS_MATCH: 'success_match',
LOGOUT: 'logout',
CLOSE_ACCOUNT: 'close_account',
};