Claw 项目完整结构提交

This commit is contained in:
zqm
2026-03-16 15:47:55 +08:00
parent ca4970bcbf
commit fb0aeb6ca2
118 changed files with 28648 additions and 281 deletions

View File

@@ -0,0 +1,210 @@
// 常量定义
// 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
}