// 常量定义 // API基础地址 const API_BASE = 'https://pactgo.cn/api/v1' // WebSocket地址 const WEBSOCKET_URL = 'wss://pactgo.cn/ws/task' // 任务状态 const TASK_STATUS = { PENDING: 'pending', PROCESSING: 'processing', COMPLETED: 'completed', FAILED: 'failed', CANCELLED: 'cancelled' } // 任务类型 const TASK_TYPE = { TEXT: 'text', IMAGE: 'image', FILE: 'file', AUDIO: 'audio', VIDEO: 'video' } // 消息类型 const MESSAGE_TYPE = { TEXT: 'text', IMAGE: 'image', FILE: 'file', SYSTEM: 'system', TASK: 'task' } // 本地存储键名 const STORAGE_KEYS = { TOKEN: 'token', USER_INFO: 'userInfo', DEVICE_ID: 'deviceId', TASK_HISTORY: 'taskHistory', CHAT_HISTORY: 'chatHistory', SYSTEM_CONFIG: 'systemConfig' } // 网络超时时间(毫秒) const NETWORK_TIMEOUT = { REQUEST: 10000, UPLOAD: 30000, DOWNLOAD: 30000, WEBSOCKET: 10000 } // 重试配置 const RETRY_CONFIG = { MAX_RETRIES: 3, RETRY_DELAY: 1000, BACKOFF_MULTIPLIER: 2 } // 分页配置 const PAGINATION = { DEFAULT_PAGE_SIZE: 20, MAX_PAGE_SIZE: 100, PRELOAD_PAGES: 2 } // 文件上传限制 const UPLOAD_LIMITS = { MAX_FILE_SIZE: 10 * 1024 * 1024, // 10MB MAX_IMAGE_SIZE: 5 * 1024 * 1024, // 5MB ALLOWED_TYPES: ['image/jpeg', 'image/png', 'image/gif', 'text/plain', 'application/pdf'] } // WebSocket消息类型 const WS_MESSAGE_TYPE = { AUTH: 'auth', PING: 'ping', PONG: 'pong', MESSAGE: 'message', TASK_STATUS: 'task_status', SYSTEM: 'system', ERROR: 'error' } // 系统配置 const SYSTEM_CONFIG = { APP_NAME: '智控未来', APP_VERSION: '1.0.0', API_VERSION: 'v1', SUPPORTED_FEATURES: ['chat', 'task', 'file_upload', 'websocket'] } // 错误代码 const ERROR_CODES = { NETWORK_ERROR: 1000, AUTH_ERROR: 1001, API_ERROR: 1002, VALIDATION_ERROR: 1003, FILE_ERROR: 1004, WEBSOCKET_ERROR: 1005, TASK_ERROR: 1006 } // 错误消息 const ERROR_MESSAGES = { [ERROR_CODES.NETWORK_ERROR]: '网络连接失败', [ERROR_CODES.AUTH_ERROR]: '认证失败', [ERROR_CODES.API_ERROR]: '接口调用失败', [ERROR_CODES.VALIDATION_ERROR]: '参数验证失败', [ERROR_CODES.FILE_ERROR]: '文件处理失败', [ERROR_CODES.WEBSOCKET_ERROR]: 'WebSocket连接失败', [ERROR_CODES.TASK_ERROR]: '任务处理失败' } // 默认头像 const DEFAULT_AVATAR = '/assets/images/default-avatar.png' // 默认图标 const DEFAULT_ICONS = { HOME: '/assets/icons/home.png', CHAT: '/assets/icons/chat.png', TASK: '/assets/icons/task.png', USER: '/assets/icons/user.png', SEND: '/assets/icons/send.png', UPLOAD: '/assets/icons/upload.png', SETTINGS: '/assets/icons/settings.png' } // 颜色配置 const COLORS = { PRIMARY: '#07c160', SECONDARY: '#10aeff', SUCCESS: '#07c160', WARNING: '#f0ad4e', ERROR: '#dd524d', INFO: '#10aeff', TEXT_PRIMARY: '#333333', TEXT_SECONDARY: '#666666', TEXT_HINT: '#999999', BACKGROUND: '#f5f5f5', WHITE: '#ffffff', BORDER: '#e0e0e0' } // 字体大小 const FONT_SIZES = { SMALL: '24rpx', NORMAL: '28rpx', LARGE: '32rpx', XLARGE: '36rpx', TITLE: '40rpx' } // 间距配置 const SPACING = { XS: '10rpx', SM: '20rpx', MD: '30rpx', LG: '40rpx', XL: '50rpx' } // 圆角配置 const BORDER_RADIUS = { SMALL: '5rpx', NORMAL: '10rpx', LARGE: '20rpx', ROUND: '50%' } // 阴影配置 const SHADOWS = { SMALL: '0 2rpx 10rpx rgba(0, 0, 0, 0.1)', NORMAL: '0 4rpx 20rpx rgba(0, 0, 0, 0.15)', LARGE: '0 8rpx 30rpx rgba(0, 0, 0, 0.2)' } // 动画配置 const ANIMATIONS = { DURATION_SHORT: 200, DURATION_NORMAL: 300, DURATION_LONG: 500, EASING: 'ease-in-out' } module.exports = { API_BASE, WEBSOCKET_URL, TASK_STATUS, TASK_TYPE, MESSAGE_TYPE, STORAGE_KEYS, NETWORK_TIMEOUT, RETRY_CONFIG, PAGINATION, UPLOAD_LIMITS, WS_MESSAGE_TYPE, SYSTEM_CONFIG, ERROR_CODES, ERROR_MESSAGES, DEFAULT_AVATAR, DEFAULT_ICONS, COLORS, FONT_SIZES, SPACING, BORDER_RADIUS, SHADOWS, ANIMATIONS }