upload project
This commit is contained in:
commit
06961cae04
422 changed files with 110626 additions and 0 deletions
253
config/config.js
Normal file
253
config/config.js
Normal file
|
|
@ -0,0 +1,253 @@
|
|||
// 小程序配置文件 - 对应Fl`utter的app_config.dart
|
||||
|
||||
function mergeDeep(target = {}, source = {}) {
|
||||
const result = Array.isArray(target) ? target.slice() : Object.assign({}, target);
|
||||
if (!source || typeof source !== 'object') {
|
||||
return result;
|
||||
}
|
||||
|
||||
Object.keys(source).forEach((key) => {
|
||||
const sourceValue = source[key];
|
||||
const targetValue = result[key];
|
||||
|
||||
if (Array.isArray(sourceValue)) {
|
||||
result[key] = sourceValue.slice();
|
||||
} else if (
|
||||
sourceValue &&
|
||||
typeof sourceValue === 'object' &&
|
||||
!Array.isArray(sourceValue) &&
|
||||
targetValue &&
|
||||
typeof targetValue === 'object' &&
|
||||
!Array.isArray(targetValue)
|
||||
) {
|
||||
result[key] = mergeDeep(targetValue, sourceValue);
|
||||
} else if (sourceValue !== undefined) {
|
||||
result[key] = sourceValue;
|
||||
}
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
let privateConfig = {};
|
||||
try {
|
||||
// eslint-disable-next-line global-require, import/no-unresolved
|
||||
privateConfig = require('./config.private.js');
|
||||
} catch (error) {
|
||||
const message = error && error.message ? String(error.message) : '';
|
||||
const isMissing = error?.code === 'MODULE_NOT_FOUND' || message.includes('not defined');
|
||||
if (!isMissing) {
|
||||
console.warn('加载私有配置失败:', error);
|
||||
} else if (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'development') {
|
||||
console.info('未检测到 config.private.js,使用默认配置');
|
||||
}
|
||||
}
|
||||
|
||||
const baseConfig = {
|
||||
// 应用信息
|
||||
appName: "FindMe",
|
||||
appVersion: "1.0.30", // 全局版本检查功能版本
|
||||
// API配置 - 使用正确的域名
|
||||
api: {
|
||||
baseUrl: "https://api.faxianwo.me",
|
||||
baseAmapUrl: "https://restapi.amap.com/v3",
|
||||
timeout: 15000
|
||||
},
|
||||
|
||||
// scana配置
|
||||
scana: {
|
||||
textBusinessId: '2084889082944577806',
|
||||
imageBusinessId: '2084888991278039310',
|
||||
appId: '68ce8147f243650001486434',
|
||||
secretKey: 'd5b263da-99b8-11f0-97a4-fa163e917534'
|
||||
},
|
||||
|
||||
// WebSocket配置 - 使用正确的WebSocket路径
|
||||
websocket: {
|
||||
baseUrl: "wss://api.faxianwo.me",
|
||||
url: "wss://api.faxianwo.me/api/v1/ws", // 🔥 恢复正确的WebSocket路径
|
||||
heartbeatInterval: 30000, // 30秒
|
||||
reconnectBaseDelay: 2000, // 重连基础延迟
|
||||
maxReconnectAttempts: 10 // 最大重连次数
|
||||
},
|
||||
|
||||
// 高德地图配置
|
||||
// amapKey: '55e1d9a4c6c0f9fa4c75656fe3060641',
|
||||
// amapKey: '9212b693317725fca66ae697ec444fd5',
|
||||
amapKey: '9da0f2a1538b5857dba24ac9aa9f30cc',
|
||||
// amapKey: '97320669caa10f1f8168b0f1aecc2c08',
|
||||
|
||||
// NIM配置
|
||||
nim: {
|
||||
appkey: '008ea0d044bd46e5b2281cb5fc3f627b',
|
||||
apiVersion: 'v2',
|
||||
enableV2CloudConversation: true
|
||||
},
|
||||
|
||||
// 腾讯云COS配置 - 用于文件存储
|
||||
cos: {
|
||||
// 存储桶配置
|
||||
bucket: 'findme-1375214531',
|
||||
region: 'ap-guangzhou',
|
||||
// 临时密钥服务地址 (后端提供)
|
||||
stsUrl: '/api/v1/cos/sts',
|
||||
// 文件检查接口 (检查文件是否已存在)
|
||||
fileCheckUrl: '/api/v1/cos/file/check',
|
||||
// 文件记录保存接口
|
||||
fileRecordUrl: '/api/v1/cos/file/record',
|
||||
// 是否使用全球加速
|
||||
useAccelerate: false,
|
||||
// 分块上传配置
|
||||
sliceSize: 1024 * 1024 * 5, // 5MB 大于此大小使用分块上传
|
||||
chunkSize: 1024 * 1024 * 1, // 1MB 分块大小
|
||||
// 文件路径格式: user/{userId}/{fileType}/{timestamp}_{fileName}
|
||||
pathFormat: 'user/{userId}/{fileType}/{timestamp}_{fileName}'
|
||||
},
|
||||
|
||||
// 网络超时设置 (保持向后兼容)
|
||||
networkTimeout: {
|
||||
request: 15000,
|
||||
upload: 60000,
|
||||
download: 60000
|
||||
},
|
||||
|
||||
// 位置刷新间隔
|
||||
locationUpdateInterval: 30000, // 30秒
|
||||
|
||||
// 文件大小限制 (小程序有自己的限制,这里作为前端验证)
|
||||
fileSizeLimit: {
|
||||
image: 10 * 1024 * 1024, // 10MB
|
||||
video: 50 * 1024 * 1024, // 50MB
|
||||
audio: 5 * 1024 * 1024, // 5MB
|
||||
file: 50 * 1024 * 1024 // 50MB
|
||||
},
|
||||
|
||||
// 支持的文件类型
|
||||
supportedFileTypes: {
|
||||
image: ['jpg', 'jpeg', 'png', 'gif', 'webp', 'bmp'],
|
||||
video: ['mp4', 'avi', 'wmv', 'mov', '3gp'],
|
||||
audio: ['mp3', 'wav', 'ogg', 'aac', 'm4a']
|
||||
},
|
||||
|
||||
// 缓存设置
|
||||
cache: {
|
||||
maxAge: 7 * 24 * 60 * 60, // 7天
|
||||
resourceExpireTime: {
|
||||
image: 4 * 3600, // 4小时
|
||||
video: 2 * 3600, // 2小时
|
||||
audio: 2 * 3600, // 2小时
|
||||
file: 1 * 3600, // 1小时
|
||||
avatar: 24 * 3600 // 24小时
|
||||
},
|
||||
// 版本管理配置
|
||||
versionManagement: {
|
||||
enableAutoClear: true, // 版本更新时自动清理缓存
|
||||
periodicClearInterval: 7 * 24 * 60 * 60 * 1000, // 7天定期清理
|
||||
showUpdateNotification: true // 显示更新通知
|
||||
}
|
||||
},
|
||||
|
||||
// API端点路径
|
||||
apiPaths: {
|
||||
// 身份验证相关(统一使用user路径)
|
||||
auth: {
|
||||
sendVerifyCode: '/api/v1/user/send-verify-code',
|
||||
login: '/api/v1/user/login',
|
||||
wechatLogin: '/api/v1/user/wechat-login',
|
||||
refresh: '/api/v1/auth/refresh',
|
||||
logout: '/api/v1/user/logout'
|
||||
},
|
||||
// 用户相关
|
||||
user: {
|
||||
profile: '/api/v1/user/profile',
|
||||
updateProfile: '/api/v1/user/profile',
|
||||
setting: '/api/v1/user/setting',
|
||||
bindPhone: '/api/v1/user/bind-phone',
|
||||
detectMerge: '/api/v1/user/detect-merge',
|
||||
mergeAccount: '/api/v1/user/merge-account'
|
||||
},
|
||||
|
||||
// 位置相关
|
||||
location: {
|
||||
update: '/api/v1/location/update',
|
||||
getFriends: '/api/v1/location/friends',
|
||||
getStrangers: '/api/v1/location/strangers',
|
||||
privacy: '/api/v1/location/privacy'
|
||||
},
|
||||
|
||||
// 聊天相关 - 根据接口文档修正API路径
|
||||
chat: {
|
||||
conversations: '/api/v1/chat/conversations',
|
||||
history: '/api/v1/chat/history', // 修正:使用正确的历史消息接口
|
||||
messages: '/api/v1/chat/history', // 保持向后兼容
|
||||
send: '/api/v1/chat/send',
|
||||
batchRead: '/api/v1/chat/batch-read', // 新增:批量已读
|
||||
markAllRead: '/api/v1/chat/mark-all-read', // 新增:全部已读
|
||||
unreadTotal: '/api/v1/chat/unread/total', // 新增:总未读数
|
||||
settings: '/api/v1/chat/settings', // 新增:聊天设置
|
||||
backup: '/api/v1/chat/backup', // 新增:备份
|
||||
restore: '/api/v1/chat/restore', // 新增:恢复
|
||||
danmaku: '/api/v1/chat/danmaku', // 新增:弹幕
|
||||
emoji: '/api/v1/chat/emoji/packages', // 新增:表情包
|
||||
syncPull: '/api/v1/chat/sync/pull', // 新增:同步拉取
|
||||
syncAck: '/api/v1/chat/sync/ack', // 新增:同步确认
|
||||
upload: '/api/v1/file/upload'
|
||||
},
|
||||
|
||||
// 社交相关
|
||||
social: {
|
||||
friends: '/api/v1/social/friends',
|
||||
addFriend: '/api/v1/social/friend/add',
|
||||
acceptFriend: '/api/v1/social/friend/handle-request',
|
||||
deleteFriend: '/api/v1/social/friend',
|
||||
search: '/api/v1/social/search',
|
||||
friendRequests: '/api/v1/social/friend/requests',
|
||||
friendRequestsCount: '/api/v1/social/friend/requests/count',
|
||||
groups: '/api/v1/social/groups',
|
||||
groupsCount: '/api/v1/social/groups/count'
|
||||
},
|
||||
|
||||
|
||||
},
|
||||
|
||||
// 小程序特有配置
|
||||
miniprogram: {
|
||||
// 页面路径
|
||||
pages: {
|
||||
splash: '/pages/splash/splash',
|
||||
login: '/pages/login/login',
|
||||
main: '/pages/main/main',
|
||||
map: '/pages/map/map',
|
||||
friends: '/pages/social/friends/friends',
|
||||
message: '/pages/message/message',
|
||||
profile: '/subpackages/profile/profile/profile'
|
||||
},
|
||||
|
||||
// 主题配置
|
||||
theme: {
|
||||
primaryColor: '#3cc51f',
|
||||
backgroundColor: '#F5F5F5',
|
||||
textColor: '#333333',
|
||||
subTextColor: '#999999'
|
||||
},
|
||||
|
||||
// 地图配置
|
||||
map: {
|
||||
defaultZoom: 16,
|
||||
minZoom: 3,
|
||||
maxZoom: 20,
|
||||
showLocation: true,
|
||||
showScale: true,
|
||||
showCompass: true
|
||||
}
|
||||
},
|
||||
|
||||
// 调试配置
|
||||
debug: {
|
||||
enabled: true,
|
||||
showLog: true,
|
||||
mockData: false
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = mergeDeep(baseConfig, privateConfig);
|
||||
22
config/config.private.example.js
Normal file
22
config/config.private.example.js
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
/**
|
||||
* 私有配置示例文件
|
||||
* 复制为 config.private.js 并填入真实密钥,仅在本地开发或安全的CI环境中使用。
|
||||
*/
|
||||
module.exports = {
|
||||
scana: {
|
||||
textBusinessId: '',
|
||||
imageBusinessId: '',
|
||||
appId: '',
|
||||
secretKey: ''
|
||||
},
|
||||
amapKey: '',
|
||||
|
||||
// 腾讯云COS配置 - 已配置正式环境
|
||||
cos: {
|
||||
bucket: 'findme-1375214531', // 存储桶名称
|
||||
region: 'ap-guangzhou', // 地域
|
||||
stsUrl: '/api/v1/cos/sts', // 临时密钥接口
|
||||
fileCheckUrl: '/api/v1/cos/file/check', // 文件去重检查接口
|
||||
fileRecordUrl: '/api/v1/cos/file/record' // 文件记录保存接口
|
||||
}
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue