修改工作区下载逻辑;云端文件夹基本功能已完成。

This commit is contained in:
2026-07-01 11:35:20 +08:00
parent 488bebcc87
commit 3544208baa
8 changed files with 3722 additions and 863 deletions

View File

@@ -687,4 +687,810 @@ export const getCloudFileUrl = (token, fileId) => {
})
}
// 删除云端文件
export const deleteCloudFile = (token, fileId) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/cloud_api/file/delete`,
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.message)
} else {
const msg = respond?.error || '删除云端文件出错啦'
reject(msg)
}
} else {
reject(`删除云端文件失败:${res.statusCode}`)
}
},
fail: (err) => {
const msg = err.errMsg || '网络错误'
reject(msg)
}
})
})
}
// 批量上传云端文件
export const uploadCloudFile = (token, type, path, files, team_id) => {
return new Promise((resolve, reject) => {
// 处理参数team_id 转为字符串,空值置空
const teamIdStr = team_id == null ? "" : String(team_id);
uni.uploadFile({
url: `${BASE_URL}/cloud_api/file/upload`,
method: "POST",
// 不要手动设置 Content-Type浏览器自动生成 multipart/form-data
header: {
// 如果后端把token放header就写这里放表单里就写到formData
},
// 普通文本参数对应form-data里的文本项
formData: {
access_token: token,
path: path || "/",
type: type,
team_id: teamIdStr
},
// 多文件每个文件name都叫files和Postman保持一致
files: files.map(fileItem => ({
uri: fileItem.tempFilePath, // 文件本地临时路径
name: "files"
})),
success: (res) => {
if (res.statusCode === 200) {
try {
const respond = JSON.parse(res.data);
if (respond.success) {
resolve(respond.message);
} else {
const msg = respond?.error || '获取云端文件url出错啦';
reject(msg);
}
} catch (e) {
reject("接口返回数据格式异常");
}
} else {
reject(`获取云端文件url失败${res.statusCode}`);
}
},
fail: (err) => {
const msg = err.errMsg || '网络错误';
reject(msg);
}
});
});
};
// 获取用户可访问的团队列表
export const getTeamList = async (token) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/cloud_api/team/list`,
method: "POST",
header: {
'Content-Type': 'application/json'
},
data: {
access_token: token,
team_name: ""
},
success: (res) => {
if (res.statusCode === 200) {
const respond = res.data
if (respond.success) {
const teamsList = respond.teams
// 去掉第1条数据系统团队从下标1开始截取剩余所有
const newList = teamsList.slice(1)
resolve(newList)
} else {
const msg = res.data.error || '获取用户可访问的团队列表出错啦'
reject(msg)
}
} else {
reject(`获取用户可访问的团队列表失败:${res.statusCode}`)
}
},
fail: (err) => {
const msg = err.errMsg || '网络错误'
reject(msg)
}
})
})
}
// 获取团队全部成员
export const getTeamAllMember = (token, teamId) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/cloud_api/team/get_all_member`,
method: "POST",
header: {
'Content-Type': 'application/json'
},
data: {
"access_token": token,
"team_id": teamId
},
success: (res) => {
if (res.statusCode === 200) {
const respond = res.data
if (respond.success) {
const members = respond.team?.result || []
resolve(members)
} else {
const msg = respond?.error || '获取团队全部成员出错啦'
reject(msg)
}
} else {
reject(`获取团队全部成员失败:${res.statusCode}`)
}
},
fail: (err) => {
const msg = err.errMsg || '网络错误'
reject(msg)
}
})
})
}
// 删除团队
export const deleteTeam = (token, teamId) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/cloud_api/team/delete`,
method: "POST",
header: {
'Content-Type': 'application/json'
},
data: {
"access_token": token,
"team_id": teamId
},
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}`)
}
},
fail: (err) => {
const msg = err.errMsg || '网络错误'
reject(msg)
}
})
})
}
// 添加团队成员
export const addTeamMember = (token, teamId, userIds) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/cloud_api/team/add_member`,
method: "POST",
header: {
'Content-Type': 'application/json'
},
data: {
"access_token": token,
"team_id": teamId,
"user_ids": userIds,
"role": "admin"
},
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}`)
}
},
fail: (err) => {
const msg = err.errMsg || '网络错误'
reject(msg)
}
})
})
}
// 修改团队信息
export const updateTeamInfo = (token, teamId, data) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/cloud_api/team/update`,
method: "POST",
header: {
'Content-Type': 'application/json'
},
data: {
"access_token": token,
"team_id": teamId,
...data
},
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}`)
}
},
fail: (err) => {
const msg = err.errMsg || '网络错误'
reject(msg)
}
})
})
}
// 移除团队成员
export const removeTeamMember = (token, teamId, userIds) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/cloud_api/team/remove_member`,
method: "POST",
header: {
'Content-Type': 'application/json'
},
data: {
"access_token": token,
"team_id": teamId,
"user_ids": userIds
},
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}`)
}
},
fail: (err) => {
const msg = err.errMsg || '网络错误'
reject(msg)
}
})
})
}
// 调整团员身份
export const updateTeamMemberRole = (token, teamId, userId, role) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/cloud_api/team/adjust_member_role`,
method: "POST",
header: {
'Content-Type': 'application/json'
},
data: {
"access_token": token,
"team_id": teamId,
"user_id": userId,
"role": role
},
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}`)
}
},
fail: (err) => {
const msg = err.errMsg || '网络错误'
reject(msg)
}
})
})
}
// ============================云端数据库=========================
// 获取用户可访问的数据库列表
export const getCloudDbList = (token) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/cloud_api/database/list`,
method: "POST",
header: {
'Content-Type': 'application/json'
},
data: {
"access_token": token
},
success: (res) => {
if (res.statusCode === 200) {
const respond = res.data
if (respond.success) {
// "databases": [
// {
// "database_name": "测试3",
// "table_count": 0,
// "file_path": "/home/yxd/yxd-agent-cloud/databases/6a446df3060ba5feae589c22.db",
// "modified_time": 1782869492.6399229,
// "database_id": "6a446df3060ba5feae589c22",
// "user_id": "690c72a6b8ffa329af2d5607",
// "access_level": 2
// },
// {
// "database_name": "database1",
// "table_count": 0,
// "file_path": "/home/yxd/yxd-agent-cloud/databases/6a446bfa1db19f3506901d2d.db",
// "modified_time": 1782868987.3745258,
// "database_id": "6a446bfa1db19f3506901d2d",
// "team_id": "6a02f6f0d99a03faefd1f437",
// "access_level": 2
// }
// ],
resolve(respond.databases)
} else {
const msg = respond?.error || '获取用户可访问的数据库列表出错啦'
reject(msg)
}
} else {
reject(`获取用户可访问的数据库列表失败:${res.statusCode}`)
}
},
fail: (err) => {
const msg = err.errMsg || '网络错误'
reject(msg)
}
})
})
}
// 创建数据库(仅个人可创建)
export const createCloudDb = (token, databaseName) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/cloud_api/database/create`,
method: "POST",
header: {
'Content-Type': 'application/json'
},
data: {
"access_token": token,
"database_name": databaseName
},
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}`)
}
},
fail: (err) => {
const msg = err.errMsg || '网络错误'
reject(msg)
}
})
})
}
// 上传db
export const uploadCloudDbFile = (token, file) => {
return new Promise((resolve, reject) => {
uni.uploadFile({
url: `${BASE_URL}/cloud_api/database/upload/db`,
method: "POST",
// 不要手动设置 Content-Type浏览器自动生成 multipart/form-data
header: {
// 如果后端把token放header就写这里放表单里就写到formData
},
// 普通文本参数对应form-data里的文本项
formData: {
access_token: token
},
// 多文件每个文件name都叫files和Postman保持一致
file: files,
success: (res) => {
if (res.statusCode === 200) {
try {
const respond = JSON.parse(res.data);
if (respond.success) {
resolve(respond.message);
} else {
const msg = respond?.error || '上传db出错啦';
reject(msg);
}
} catch (e) {
reject("接口返回数据格式异常");
}
} else {
reject(`上传db失败${res.statusCode}`);
}
},
fail: (err) => {
const msg = err.errMsg || '网络错误';
reject(msg);
}
});
});
};
// 删除数据库(仅个人可创建)
export const deleteCloudDb = (token, databaseId) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/cloud_api/database/delete`,
method: "POST",
header: {
'Content-Type': 'application/json'
},
data: {
"access_token": token,
"database_id": databaseName
},
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}`)
}
},
fail: (err) => {
const msg = err.errMsg || '网络错误'
reject(msg)
}
})
})
}
// 获取数据库中的表列表
export const getCloudDbTables = (token, databaseId, isDetail) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/cloud_api/database/list`,
method: "POST",
header: {
'Content-Type': 'application/json'
},
data: {
"access_token": token,
"database_id": databaseId,
"is_detail": isDetail
},
success: (res) => {
if (res.statusCode === 200) {
const respond = res.data
if (respond.success) {
resolve(respond.tables)
} else {
const msg = respond?.error || '获取用户可访问的数据库列表出错啦'
reject(msg)
}
} else {
reject(`获取用户可访问的数据库列表失败:${res.statusCode}`)
}
},
fail: (err) => {
const msg = err.errMsg || '网络错误'
reject(msg)
}
})
})
}
// 删除数据库中的表
export const deleteCloudDbTable = async (token, databaseId, tableName) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/delete_conversation`,
method: "POST",
data: {
"access_token": token,
"database_id": databaseId,
"table_name": table_name
},
header: {
'Content-Type': 'application/json'
},
success: (res) => {
if (res.statusCode === 200) {
const respond = res.data
if (respond?.success) {
resolve(respond.message)
} else {
const msg = respond.failed_ids.error || '删除数据库中的表出错啦'
reject(msg)
}
} else {
reject(`删除数据库中的表失败:${res.statusCode}`)
}
},
fail: (err) => {
const msg = err.errMsg || '网络错误'
reject(msg)
}
})
})
}
// 更新表数据
export const updateCloudDbTableData = async (token, databaseId, tableName, whereData, updateData) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/cloud_api/database/table/update/by/id`,
method: "POST",
data: {
"access_token": token,
"database_id": databaseId,
"table_name": table_name,
"where_data": {
"_row_id": 2
},
"update_data": {
"问题": "《水土保持监理规范2344444》制定的目的是什么"
}
},
header: {
'Content-Type': 'application/json'
},
success: (res) => {
if (res.statusCode === 200) {
const respond = res.data
if (respond?.success) {
resolve(respond.message)
} else {
const msg = respond.failed_ids.error || '更新表数据出错啦'
reject(msg)
}
} else {
reject(`更新表数据失败:${res.statusCode}`)
}
},
fail: (err) => {
const msg = err.errMsg || '网络错误'
reject(msg)
}
})
})
}
// 导入文件到数据库
export const importFileToCloudDb = (token, forceOverwrite, databaseId, file, tableName) => {
return new Promise((resolve, reject) => {
uni.uploadFile({
url: `${BASE_URL}/cloud_api/file/upload`,
method: "POST",
// 不要手动设置 Content-Type浏览器自动生成 multipart/form-data
header: {
// 如果后端把token放header就写这里放表单里就写到formData
},
// 普通文本参数对应form-data里的文本项
formData: {
access_token: token,
force_overwrite: forceOverwrite,
database_id: databaseId,
team_id: teamIdStr,
table_name: tableName
},
file: file,
success: (res) => {
if (res.statusCode === 200) {
try {
const respond = JSON.parse(res.data);
if (respond.success) {
resolve(respond.message);
} else {
const msg = respond?.error || '导入文件到数据库出错啦';
reject(msg);
}
} catch (e) {
reject("接口返回数据格式异常");
}
} else {
reject(`导入文件到数据库失败:${res.statusCode}`);
}
},
fail: (err) => {
const msg = err.errMsg || '网络错误';
reject(msg);
}
});
});
};
// 查看 个人/团队 数据库权限信息
export const getCloudDbPermission = async (token, databaseId, type, Id) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/cloud_api/database/permission/info`,
method: "POST",
data: {
"access_token": token,
"database_id": databaseId,
type: Id
// "team_id": "6a02f6f0d99a03faefd1f437",
// "user_id": "690c72a6b8ffa329af2d5607",
},
header: {
'Content-Type': 'application/json'
},
success: (res) => {
if (res.statusCode === 200) {
const respond = res.data
if (respond?.success) {
resolve(respond.message)
} else {
const msg = respond.failed_ids.error || '查看 个人/团队 数据库权限信息出错啦'
reject(msg)
}
} else {
reject(`查看 个人/团队 数据库权限信息失败:${res.statusCode}`)
}
},
fail: (err) => {
const msg = err.errMsg || '网络错误'
reject(msg)
}
})
})
}
// 删除 团队/用户 对数据库权限
export const deleteCloudDbPermission = async (token, databaseId, type, Id) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/cloud_api/database/permission/delete`,
method: "POST",
data: {
"access_token": token,
"database_id": databaseId,
type: Id
// "team_id": "6a02f6f0d99a03faefd1f437",
// "user_id": "690c72a6b8ffa329af2d5607",
},
header: {
'Content-Type': 'application/json'
},
success: (res) => {
if (res.statusCode === 200) {
const respond = res.data
if (respond?.success) {
resolve(respond.message)
} else {
const msg = respond.failed_ids.error || '删除 团队/用户 对数据库权限出错啦'
reject(msg)
}
} else {
reject(`删除 团队/用户 对数据库权限失败:${res.statusCode}`)
}
},
fail: (err) => {
const msg = err.errMsg || '网络错误'
reject(msg)
}
})
})
}
// 修改/增加 团队/用户 对数据库权限
export const updateCloudDbPermission = async (token, databaseId, type, Id, level) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/cloud_api/database/permission/update`,
method: "POST",
data: {
"access_token": token,
"database_id": databaseId,
"access_level": "3",
type: Id,
// "team_id": "6a02f6f0d99a03faefd1f437",
// "user_id": "690c72a6b8ffa329af2d5607",
},
header: {
'Content-Type': 'application/json'
},
success: (res) => {
if (res.statusCode === 200) {
const respond = res.data
if (respond?.success) {
resolve(respond.message)
} else {
const msg = respond.failed_ids.error || '修改/增加 团队/用户 对数据库权限出错啦'
reject(msg)
}
} else {
reject(`修改/增加 团队/用户 对数据库权限失败:${res.statusCode}`)
}
},
fail: (err) => {
const msg = err.errMsg || '网络错误'
reject(msg)
}
})
})
}
// 个人数据库移交团队
export const dbTransferToTeam = async (token, databaseId,teamId) => {
return new Promise((resolve, reject) => {
uni.request({
url: `${BASE_URL}/cloud_api/database/transfer_to_team`,
method: "POST",
data: {
"access_token": token,
"database_id": databaseId,
"team_id": teamId
},
header: {
'Content-Type': 'application/json'
},
success: (res) => {
if (res.statusCode === 200) {
const respond = res.data
if (respond?.success) {
resolve(respond.message)
} else {
const msg = respond.failed_ids.error || '个人数据库移交团队出错啦'
reject(msg)
}
} else {
reject(`个人数据库移交团队失败:${res.statusCode}`)
}
},
fail: (err) => {
const msg = err.errMsg || '网络错误'
reject(msg)
}
})
})
}