云端文件下载
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
// 云端基础URL
|
||||
// const BASE_URL = 'https://cloud.yuxindazhineng.com'
|
||||
const BASE_URL = 'https://cloudtest.yuxindazhineng.com'
|
||||
const BASE_URL = 'https://cloud.yuxindazhineng.com'
|
||||
// const BASE_URL = 'https://cloudtest.yuxindazhineng.com'
|
||||
// const BASE_URL = 'https://yxdpqj.yuxindazhineng.com'
|
||||
|
||||
// 登录请求
|
||||
@@ -85,8 +85,10 @@ export const getConversationMessages = async (token, conversatio_id) => {
|
||||
if (res.statusCode === 200) {
|
||||
const messagesInfo = res.data
|
||||
if (messagesInfo) {
|
||||
console.log("工作区id为:", messagesInfo.workspace_id);
|
||||
uni.setStorageSync('workspace_id', messagesInfo.workspace_id)
|
||||
console.log("工作区id为:", messagesInfo.workspace_id || '(无)');
|
||||
if (messagesInfo.workspace_id) {
|
||||
uni.setStorageSync('workspace_id', messagesInfo.workspace_id)
|
||||
}
|
||||
resolve(messagesInfo.messages)
|
||||
} else {
|
||||
const msg = res.data.error || '获取消息出错啦'
|
||||
@@ -143,7 +145,7 @@ export const addMessageDict = async (token, role, conversation_id, message) => {
|
||||
})
|
||||
}
|
||||
|
||||
// 获取工作区消息(非内容)
|
||||
// 获取工作区信息(非内容)
|
||||
export const getWorkspaceByConversation = async (token, conversation_id) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.request({
|
||||
@@ -162,11 +164,11 @@ export const getWorkspaceByConversation = async (token, conversation_id) => {
|
||||
if (workspaceInfo?.success) {
|
||||
resolve(workspaceInfo.workspace_id)
|
||||
} else {
|
||||
const msg = res.data.error || '获取工作区消息出错啦'
|
||||
const msg = res.data.error || '获取工作区信息出错啦'
|
||||
reject(msg)
|
||||
}
|
||||
} else {
|
||||
reject(`获取工作区消息失败:${res.statusCode}`)
|
||||
reject(`获取工作区信息失败:${res.statusCode}`)
|
||||
}
|
||||
},
|
||||
fail: (err) => {
|
||||
@@ -437,7 +439,7 @@ export const daleteWorkspace = (token, workspacesId, path) => {
|
||||
"file_path": path
|
||||
},
|
||||
success: (res) => {
|
||||
if(res.statusCode === 200){
|
||||
if (res.statusCode === 200) {
|
||||
const respond = res.data
|
||||
if (respond.success) {
|
||||
resolve(respond.message)
|
||||
@@ -445,7 +447,7 @@ export const daleteWorkspace = (token, workspacesId, path) => {
|
||||
const msg = respond?.error || '删除工作区文件出错啦'
|
||||
reject(msg)
|
||||
}
|
||||
}else {
|
||||
} else {
|
||||
reject(`删除工作区文件失败:${res.statusCode}`)
|
||||
}
|
||||
}
|
||||
@@ -468,7 +470,7 @@ export const createWorkspaceFolder = (token, workspacesId, path) => {
|
||||
"dir_path": path
|
||||
},
|
||||
success: (res) => {
|
||||
if(res.statusCode === 200){
|
||||
if (res.statusCode === 200) {
|
||||
const respond = res.data
|
||||
if (respond.success) {
|
||||
resolve(respond.message)
|
||||
@@ -476,7 +478,7 @@ export const createWorkspaceFolder = (token, workspacesId, path) => {
|
||||
const msg = respond?.error || '创建工作区文件夹出错啦'
|
||||
reject(msg)
|
||||
}
|
||||
}else {
|
||||
} else {
|
||||
reject(`创建工作区文件夹失败:${res.statusCode}`)
|
||||
}
|
||||
}
|
||||
@@ -484,7 +486,7 @@ export const createWorkspaceFolder = (token, workspacesId, path) => {
|
||||
})
|
||||
}
|
||||
|
||||
// 获取工作区文URL
|
||||
// 获取工作区文件的URL
|
||||
export const getWorkspaceFileURL = (token, workspacesId, path) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.request({
|
||||
@@ -499,7 +501,7 @@ export const getWorkspaceFileURL = (token, workspacesId, path) => {
|
||||
"file_path": path
|
||||
},
|
||||
success: (res) => {
|
||||
if(res.statusCode === 200){
|
||||
if (res.statusCode === 200) {
|
||||
const respond = res.data
|
||||
// 兼容两种返回格式:{success: true, message: [...]} 或直接返回数组
|
||||
if (respond.success) {
|
||||
@@ -510,10 +512,179 @@ export const getWorkspaceFileURL = (token, workspacesId, path) => {
|
||||
const msg = respond?.error || '获取工作区文URL出错啦'
|
||||
reject(msg)
|
||||
}
|
||||
}else {
|
||||
} else {
|
||||
reject(`获取工作区文URL失败:${res.statusCode}`)
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// 上传文件到工作区(手机弃用,仅支持pc本地前缀)
|
||||
// export const workspaceUploadFile = (workspacesId,file,path) => {
|
||||
// return new Promise((resolve, reject) => {
|
||||
// uni.request({
|
||||
// url: `${BASE_URL}/workspace/file/upload`,
|
||||
// method: "POST",
|
||||
// header: {
|
||||
// 'Content-Type': 'application/json'
|
||||
// },
|
||||
// data: {
|
||||
// workspaces_id: workspacesId,
|
||||
// file: file,
|
||||
// file_path: path,
|
||||
// overwrite: true
|
||||
// },
|
||||
// success: (res) => {
|
||||
// if(res.statusCode === 200){
|
||||
// const respond = res.data
|
||||
// if (respond.success) {
|
||||
// resolve(respond)Z
|
||||
// } else {
|
||||
// const msg = respond?.error || '上传文件到工作区出错啦'
|
||||
// reject(msg)
|
||||
// }
|
||||
// }else {
|
||||
// reject(`上传文件到工作区失败:${res.statusCode}`)
|
||||
// }
|
||||
// }
|
||||
// })
|
||||
// })
|
||||
// }
|
||||
|
||||
// 上传用户头像
|
||||
export const uploadUserAvatar = (token, userId, username, email, avatarURL) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.request({
|
||||
url: `${BASE_URL}/cloud_api/user/file/upload`,
|
||||
method: "POST",
|
||||
header: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
data: {
|
||||
"access_token": token,
|
||||
"file": file,
|
||||
},
|
||||
success: (res) => {
|
||||
if (res.statusCode === 200) {
|
||||
const respond = res.data
|
||||
if (respond.success) {
|
||||
resolve(respond.upload_url)
|
||||
} else {
|
||||
const msg = respond?.error || '上传用户头像出错啦'
|
||||
reject(msg)
|
||||
}
|
||||
} else {
|
||||
reject(`上传用户头像失败:${res.statusCode}`)
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 修改用户信息
|
||||
export const updateUserInfo = (token, userId, username, email, avatarURL) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.request({
|
||||
url: `${BASE_URL}/cloud_api/update_user_profile`,
|
||||
method: "POST",
|
||||
header: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
data: {
|
||||
"access_token": token,
|
||||
"user_id": userId,
|
||||
"username": username,
|
||||
"email:": email,
|
||||
"avatar": avatarURL
|
||||
},
|
||||
success: (res) => {
|
||||
if (res.statusCode === 200) {
|
||||
const respond = res.data
|
||||
if (respond.success) {
|
||||
resolve(respond.message)
|
||||
} else {
|
||||
const msg = respond?.error || '修改用户信息出错啦'
|
||||
reject(msg)
|
||||
}
|
||||
} else {
|
||||
reject(`修改用户信息失败:${res.statusCode}`)
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// ============================云端文件管理=========================
|
||||
// 获取云端个人/团队文件列表
|
||||
export const getCloudFileList = (token, type, path = "/", teamId = "") => {
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.request({
|
||||
url: `${BASE_URL}/cloud_api/file/list`,
|
||||
method: "POST",
|
||||
header: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
data: {
|
||||
"access_token": token,
|
||||
"path": path,
|
||||
"type": type,
|
||||
"team_id": teamId
|
||||
},
|
||||
success: (res) => {
|
||||
if (res.statusCode === 200) {
|
||||
const respond = res.data
|
||||
if (respond.success) {
|
||||
resolve(respond.data)
|
||||
} else {
|
||||
const msg = respond?.error || '获取工作区文件目录出错啦'
|
||||
reject(msg)
|
||||
}
|
||||
} else {
|
||||
reject(`获取工作区文件目录失败:${res.statusCode}`)
|
||||
}
|
||||
},
|
||||
fail: (err) => {
|
||||
const msg = err.errMsg || '网络错误'
|
||||
reject(msg)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// 下载云端文件,通过文件id获取下载url
|
||||
export const getCloudFileUrl = (token, fileId) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.request({
|
||||
url: `${BASE_URL}/cloud_api/file/download`,
|
||||
method: "POST",
|
||||
header: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
data: {
|
||||
"access_token": token,
|
||||
"file_id": fileId,
|
||||
},
|
||||
success: (res) => {
|
||||
if (res.statusCode === 200) {
|
||||
const respond = res.data
|
||||
if (respond.success) {
|
||||
resolve(respond.data.download_url)
|
||||
} else {
|
||||
const msg = respond?.error || '获取云端文件url出错啦'
|
||||
reject(msg)
|
||||
}
|
||||
} else {
|
||||
reject(`获取云端文件url失败:${res.statusCode}`)
|
||||
}
|
||||
},
|
||||
fail: (err) => {
|
||||
const msg = err.errMsg || '网络错误'
|
||||
reject(msg)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// ============================云端数据库=========================
|
||||
|
||||
@@ -189,17 +189,17 @@ export const getGroupMemberList = async (groupId) => {
|
||||
"size": 100
|
||||
},
|
||||
success: (res) => {
|
||||
if(res.statusCode ===200){
|
||||
if (res.statusCode === 200) {
|
||||
const respond = res.data
|
||||
if(respond.code === 0){
|
||||
if (respond.code === 0) {
|
||||
const groupMemberList = respond.data.records
|
||||
resolve(groupMemberList)
|
||||
} else {
|
||||
const msg = res.data.error || '获取群成员出错啦'
|
||||
reject(msg)
|
||||
}
|
||||
|
||||
}else{
|
||||
|
||||
} else {
|
||||
reject(`请求群成员失败:${res.statusCode}`)
|
||||
}
|
||||
},
|
||||
@@ -211,7 +211,7 @@ export const getGroupMemberList = async (groupId) => {
|
||||
})
|
||||
}
|
||||
|
||||
// 上传文件
|
||||
// 聊天上传文件
|
||||
export const uploadFileToServer = (filePath) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.uploadFile({
|
||||
@@ -232,3 +232,100 @@ export const uploadFileToServer = (filePath) => {
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// 添加好友请求
|
||||
export const sendFriendRequest = async (sendId, friendNickName, friendId) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
console.log("进入sendFriendRequest");
|
||||
uni.request({
|
||||
url: `${BASE_Friend_URL}/api/friendship/saveShip`,
|
||||
method: 'POST',
|
||||
data: {
|
||||
sendId: sendId,
|
||||
friendNickName: friendNickName,
|
||||
recipientId: friendId
|
||||
},
|
||||
success: (res) => {
|
||||
if (res.statusCode === 200) {
|
||||
const respond = res.data
|
||||
if (respond?.code === 0 || respond?.msg === '成功') {
|
||||
resolve("已成功发送好友申请")
|
||||
} else {
|
||||
const msg = res.data.msg || '发送好友申请出错啦'
|
||||
reject(msg)
|
||||
}
|
||||
} else {
|
||||
reject(`发送好友申请失败:${res.statusCode}`)
|
||||
}
|
||||
},
|
||||
fail: (err) => {
|
||||
const msg = err.errMsg || '网络错误'
|
||||
reject(msg)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// 保存好友关系(即同意好友,双向保存)
|
||||
export const saveFriend = async (friendList) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.request({
|
||||
url: `${BASE_Friend_URL}/api/chatList/save`,
|
||||
method: 'POST',
|
||||
header: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
data: friendList,
|
||||
success: (res) => {
|
||||
if (res.statusCode === 200) {
|
||||
const respond = res.data
|
||||
if (respond?.code === 0 || respond?.msg === '成功') {
|
||||
resolve("保存好友成功")
|
||||
} else {
|
||||
const msg = respond?.msg || '保存好友出错啦'
|
||||
reject(msg)
|
||||
}
|
||||
} else {
|
||||
reject(`保存好友失败:${res.statusCode}`)
|
||||
}
|
||||
},
|
||||
fail: (err) => {
|
||||
const msg = err.errMsg || '网络错误'
|
||||
reject(msg)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// 获取添加我的好友
|
||||
export const getFriendRequestList = async (sendId) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.request({
|
||||
url: `${BASE_Friend_URL}/api/friendship/getFriendship`,
|
||||
method: 'POST',
|
||||
data: {
|
||||
"current": 1,
|
||||
"size": 100,
|
||||
"sendId": sendId
|
||||
},
|
||||
success: (res) => {
|
||||
if (res.statusCode === 200) {
|
||||
const respond = res.data
|
||||
if (respond?.code === 0 || respond?.msg === '成功') {
|
||||
const records = respond?.data?.records || []
|
||||
resolve(records)
|
||||
} else {
|
||||
const msg = res.data.msg || '获取添加我的好友出错啦'
|
||||
reject(msg)
|
||||
}
|
||||
} else {
|
||||
reject(`获取添加我的好友失败:${res.statusCode}`)
|
||||
}
|
||||
},
|
||||
fail: (err) => {
|
||||
const msg = err.errMsg || '网络错误'
|
||||
reject(msg)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
@@ -34,6 +34,7 @@ class WebSocketManager {
|
||||
this.isManualClose = false
|
||||
// 关闭现有连接
|
||||
if (this.ws) {
|
||||
console.log('关闭现有连接');
|
||||
this.close()
|
||||
}
|
||||
try {
|
||||
@@ -92,7 +93,7 @@ class WebSocketManager {
|
||||
}
|
||||
})
|
||||
this.ws.onError((err) => {
|
||||
console.error('WebSocket 错误:', err)
|
||||
console.error('WebSocket 错误:', JSON.stringify(err))
|
||||
this.handleError(err)
|
||||
})
|
||||
this.ws.onClose((event) => {
|
||||
@@ -299,11 +300,12 @@ class WebSocketManager {
|
||||
|
||||
if (this.ws) {
|
||||
// 移除所有事件监听,避免内存泄漏
|
||||
// 注意:不能用 null 调用回调,否则会触发 onError(null) 产生假错误日志
|
||||
// #ifdef APP-PLUS || MP-WEIXIN
|
||||
if (this.ws.onOpen) this.ws.onOpen(null)
|
||||
if (this.ws.onMessage) this.ws.onMessage(null)
|
||||
if (this.ws.onError) this.ws.onError(null)
|
||||
if (this.ws.onClose) this.ws.onClose(null)
|
||||
this.ws.onOpen(() => {})
|
||||
this.ws.onMessage(() => {})
|
||||
this.ws.onError(() => {})
|
||||
this.ws.onClose(() => {})
|
||||
// #endif
|
||||
|
||||
try {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
const WS_APP_URL = 'ws://cloud_test.yuxindazhineng.com'
|
||||
// const WS_APP_URL = 'ws://cloud_test.yuxindazhineng.com'
|
||||
const WS_APP_URL = 'ws://cloud.yuxindazhineng.com'
|
||||
// (工具类)连接、发送、接收、重连...
|
||||
class WebSocketManager {
|
||||
constructor() {
|
||||
|
||||
Reference in New Issue
Block a user