修改工作区下载逻辑;云端文件夹基本功能已完成。
This commit is contained in:
@@ -42,7 +42,10 @@
|
||||
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
|
||||
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
||||
"<uses-feature android:name=\"android.hardware.camera\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
|
||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.MANAGE_EXTERNAL_STORAGE\"/>"
|
||||
]
|
||||
},
|
||||
/* ios打包配置 */
|
||||
|
||||
@@ -394,6 +394,31 @@
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.team-info {
|
||||
margin-top: 14rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
gap: 12rpx;
|
||||
}
|
||||
|
||||
.team-type-tag {
|
||||
font-size: 22rpx;
|
||||
color: #3b86ff;
|
||||
background: rgba(59, 134, 255, 0.1);
|
||||
padding: 6rpx 16rpx;
|
||||
border-radius: 8rpx;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.team-desc-text {
|
||||
font-size: 24rpx;
|
||||
color: #999;
|
||||
line-height: 1.5;
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.select-team-tip {
|
||||
padding: 80rpx 0;
|
||||
}
|
||||
@@ -595,6 +620,11 @@
|
||||
background: rgba(59, 134, 255, 0.1);
|
||||
}
|
||||
|
||||
.member-role.member {
|
||||
color: #67c23a;
|
||||
background: rgba(103, 194, 58, 0.1);
|
||||
}
|
||||
|
||||
.member-actions-right {
|
||||
display: flex;
|
||||
gap: 8rpx;
|
||||
@@ -611,6 +641,11 @@
|
||||
border: 1rpx solid #3b86ff;
|
||||
}
|
||||
|
||||
.demote-admin {
|
||||
color: #e6a23c;
|
||||
border: 1rpx solid #e6a23c;
|
||||
}
|
||||
|
||||
.remove-member {
|
||||
color: #f56c6c;
|
||||
border: 1rpx solid #f56c6c;
|
||||
@@ -645,6 +680,88 @@
|
||||
padding: 14rpx 32rpx;
|
||||
}
|
||||
|
||||
/* 搜索结果列表 */
|
||||
.search-result-list {
|
||||
margin-top: 16rpx;
|
||||
border-radius: 14rpx;
|
||||
overflow: hidden;
|
||||
background: #f8f9fc;
|
||||
}
|
||||
|
||||
.search-result-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 18rpx 20rpx;
|
||||
border-bottom: 1rpx solid #eee;
|
||||
}
|
||||
|
||||
.search-result-item:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.search-result-item:active {
|
||||
background: rgba(59, 134, 255, 0.05);
|
||||
}
|
||||
|
||||
.result-avatar {
|
||||
width: 64rpx;
|
||||
height: 64rpx;
|
||||
border-radius: 50%;
|
||||
flex-shrink: 0;
|
||||
margin-right: 16rpx;
|
||||
}
|
||||
|
||||
.result-default-avatar {
|
||||
width: 64rpx;
|
||||
height: 64rpx;
|
||||
border-radius: 50%;
|
||||
background: linear-gradient(135deg, #3b86ff, #6db3ff);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-shrink: 0;
|
||||
margin-right: 16rpx;
|
||||
}
|
||||
|
||||
.result-info {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 4rpx;
|
||||
}
|
||||
|
||||
.result-name {
|
||||
font-size: 28rpx;
|
||||
color: #333;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.result-email {
|
||||
font-size: 22rpx;
|
||||
color: #999;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.result-add-btn {
|
||||
flex-shrink: 0;
|
||||
font-size: 24rpx;
|
||||
color: #3b86ff;
|
||||
padding: 10rpx 24rpx;
|
||||
border: 1rpx solid #3b86ff;
|
||||
border-radius: 20rpx;
|
||||
}
|
||||
|
||||
.search-empty {
|
||||
margin-top: 16rpx;
|
||||
text-align: center;
|
||||
font-size: 24rpx;
|
||||
color: #bbb;
|
||||
padding: 20rpx 0;
|
||||
}
|
||||
|
||||
.folder-null {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@@ -661,9 +778,76 @@
|
||||
color: #ddd;
|
||||
}
|
||||
|
||||
/* 删除团队 */
|
||||
.delete-team-section {
|
||||
border-top: 1rpx solid #eee;
|
||||
padding-top: 20rpx;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
|
||||
.delete-team-btn {
|
||||
text-align: center;
|
||||
padding: 18rpx;
|
||||
font-size: 26rpx;
|
||||
color: #e74c3c;
|
||||
background: rgba(231, 76, 60, 0.06);
|
||||
border-radius: 14rpx;
|
||||
border: 1rpx solid rgba(231, 76, 60, 0.2);
|
||||
}
|
||||
|
||||
.delete-team-btn:active {
|
||||
background: rgba(231, 76, 60, 0.12);
|
||||
}
|
||||
|
||||
/* 修改团队信息 */
|
||||
.edit-team-section {
|
||||
border-top: 1rpx solid #eee;
|
||||
padding-top: 20rpx;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
|
||||
.edit-team-btn {
|
||||
text-align: center;
|
||||
padding: 18rpx;
|
||||
font-size: 26rpx;
|
||||
color: #3b86ff;
|
||||
background: rgba(59, 134, 255, 0.06);
|
||||
border-radius: 14rpx;
|
||||
border: 1rpx solid rgba(59, 134, 255, 0.2);
|
||||
}
|
||||
|
||||
.edit-team-btn:active {
|
||||
background: rgba(59, 134, 255, 0.12);
|
||||
}
|
||||
|
||||
.edit-team-form {
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
|
||||
.form-label {
|
||||
font-size: 26rpx;
|
||||
color: #666;
|
||||
margin-bottom: 8rpx;
|
||||
margin-top: 18rpx;
|
||||
}
|
||||
|
||||
.text-btn {
|
||||
padding: 8rpx 20rpx;
|
||||
border-radius: 30rpx;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* ===== 上传文件弹窗 ===== */
|
||||
.upload-path-label {
|
||||
font-size: 26rpx;
|
||||
color: #666;
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
|
||||
.upload-path-hint {
|
||||
font-size: 22rpx;
|
||||
color: #999;
|
||||
margin-bottom: 20rpx;
|
||||
text-align: center;
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -317,28 +317,13 @@
|
||||
|
||||
uni.downloadFile({
|
||||
url: downloadUrl,
|
||||
name: fileName, // 重要:指定文件名,保证打开正常
|
||||
name: fileName,
|
||||
success: (downloadRes) => {
|
||||
uni.hideLoading();
|
||||
if (downloadRes.statusCode === 200) {
|
||||
// 下载成功 → 直接打开文件
|
||||
uni.openDocument({
|
||||
filePath: downloadRes.tempFilePath,
|
||||
showMenu: true, // 右上角显示 分享/保存 按钮
|
||||
success: () => {
|
||||
uni.showToast({
|
||||
title: '打开成功',
|
||||
icon: 'success'
|
||||
});
|
||||
},
|
||||
fail: (err) => {
|
||||
console.error('打开失败:', err);
|
||||
uni.showToast({
|
||||
title: '无法打开此文件',
|
||||
icon: 'error'
|
||||
});
|
||||
}
|
||||
});
|
||||
const tempPath = downloadRes.tempFilePath;
|
||||
// 下载成功,保存到 yxd 目录
|
||||
saveFileToYxd(fileName, tempPath);
|
||||
} else {
|
||||
uni.showToast({ title: '下载失败', icon: 'error' });
|
||||
}
|
||||
@@ -356,6 +341,133 @@
|
||||
}
|
||||
};
|
||||
|
||||
// 将下载的文件保存到外部存储 yxd 目录
|
||||
const saveFileToYxd = (fileName, tempPath) => {
|
||||
// #ifdef APP-PLUS
|
||||
// App 端:复制文件到 /storage/emulated/0/yxd/
|
||||
const YXD_PATH = '/storage/emulated/0/yxd/';
|
||||
|
||||
const ensureYxdDir = (callback) => {
|
||||
plus.io.resolveLocalFileSystemURL(YXD_PATH, (dirEntry) => {
|
||||
callback(dirEntry);
|
||||
}, () => {
|
||||
plus.io.resolveLocalFileSystemURL('/storage/emulated/0/', (rootEntry) => {
|
||||
rootEntry.getDirectory('yxd', { create: true }, (dirEntry) => {
|
||||
callback(dirEntry);
|
||||
}, (err) => {
|
||||
console.error('创建 yxd 目录失败:', JSON.stringify(err));
|
||||
uni.showToast({ title: '创建目录失败', icon: 'error' });
|
||||
openFileConfirm(fileName, tempPath);
|
||||
});
|
||||
}, (err) => {
|
||||
console.error('访问外部存储根目录失败:', JSON.stringify(err));
|
||||
uni.showToast({ title: '无法访问存储目录', icon: 'error' });
|
||||
openFileConfirm(fileName, tempPath);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
ensureYxdDir((yxdDirEntry) => {
|
||||
plus.io.resolveLocalFileSystemURL(tempPath, (fileEntry) => {
|
||||
fileEntry.copyTo(
|
||||
yxdDirEntry,
|
||||
fileName,
|
||||
() => {
|
||||
const targetPath = YXD_PATH + fileName;
|
||||
console.log('文件已保存到:', targetPath);
|
||||
openFileConfirm(fileName, targetPath);
|
||||
},
|
||||
(err) => {
|
||||
console.error('复制文件失败:', JSON.stringify(err));
|
||||
openFileConfirm(fileName, tempPath);
|
||||
}
|
||||
);
|
||||
}, (err) => {
|
||||
console.error('读取临时文件失败:', JSON.stringify(err));
|
||||
openFileConfirm(fileName, tempPath);
|
||||
});
|
||||
});
|
||||
// #endif
|
||||
// #ifndef APP-PLUS
|
||||
uni.saveFile({
|
||||
tempFilePath: tempPath,
|
||||
success: (saveRes) => {
|
||||
openFileConfirm(fileName, saveRes.savedFilePath);
|
||||
},
|
||||
fail: () => {
|
||||
openFileConfirm(fileName, tempPath);
|
||||
}
|
||||
});
|
||||
// #endif
|
||||
};
|
||||
|
||||
// 下载成功后确认是否打开文件
|
||||
const openFileConfirm = (fileName, filePath) => {
|
||||
uni.showActionSheet({
|
||||
title: `${fileName} 下载完成`,
|
||||
itemList: ['打开文件', '选择其他应用打开', '仅保存'],
|
||||
success: (res) => {
|
||||
switch (res.tapIndex) {
|
||||
case 0:
|
||||
openFile(filePath);
|
||||
break;
|
||||
case 1:
|
||||
openFileWithMenu(filePath);
|
||||
break;
|
||||
case 2:
|
||||
uni.showToast({
|
||||
title: '文件已保存到 yxd 目录',
|
||||
icon: 'success'
|
||||
});
|
||||
break;
|
||||
}
|
||||
},
|
||||
fail: () => {
|
||||
uni.showToast({
|
||||
title: '文件已保存到 yxd 目录',
|
||||
icon: 'success'
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// 使用系统默认应用打开
|
||||
const openFile = (filePath) => {
|
||||
uni.openDocument({
|
||||
filePath: filePath,
|
||||
success: () => uni.showToast({
|
||||
title: '打开成功',
|
||||
icon: 'success'
|
||||
}),
|
||||
fail: (err) => {
|
||||
console.error('打开文件失败:', err);
|
||||
uni.showToast({
|
||||
title: '无法打开此文件',
|
||||
icon: 'error'
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// 选择其他应用打开
|
||||
const openFileWithMenu = (filePath) => {
|
||||
uni.openDocument({
|
||||
filePath: filePath,
|
||||
showMenu: true,
|
||||
success: () => uni.showToast({
|
||||
title: '打开成功',
|
||||
icon: 'success'
|
||||
}),
|
||||
fail: (err) => {
|
||||
console.error('打开文件失败:', err);
|
||||
uni.showToast({
|
||||
title: '无法打开此文件',
|
||||
icon: 'error'
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// 删除
|
||||
const handleDelete = (folder) => {
|
||||
uni.showModal({
|
||||
|
||||
1377
unpackage/dist/dev/app-plus/app-service.js
vendored
1377
unpackage/dist/dev/app-plus/app-service.js
vendored
File diff suppressed because it is too large
Load Diff
5
unpackage/dist/dev/app-plus/manifest.json
vendored
5
unpackage/dist/dev/app-plus/manifest.json
vendored
@@ -62,7 +62,10 @@
|
||||
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
|
||||
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
||||
"<uses-feature android:name=\"android.hardware.camera\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
|
||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.MANAGE_EXTERNAL_STORAGE\"/>"
|
||||
]
|
||||
},
|
||||
"apple": {
|
||||
|
||||
@@ -878,6 +878,28 @@
|
||||
background: #3b86ff;
|
||||
font-weight: 500;
|
||||
}
|
||||
.team-info[data-v-51006ffb] {
|
||||
margin-top: 0.4375rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.375rem;
|
||||
}
|
||||
.team-type-tag[data-v-51006ffb] {
|
||||
font-size: 0.6875rem;
|
||||
color: #3b86ff;
|
||||
background: rgba(59, 134, 255, 0.1);
|
||||
padding: 0.1875rem 0.5rem;
|
||||
border-radius: 0.25rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
.team-desc-text[data-v-51006ffb] {
|
||||
font-size: 0.75rem;
|
||||
color: #999;
|
||||
line-height: 1.5;
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
.select-team-tip[data-v-51006ffb] {
|
||||
padding: 2.5rem 0;
|
||||
}
|
||||
@@ -1052,6 +1074,10 @@
|
||||
color: #3b86ff;
|
||||
background: rgba(59, 134, 255, 0.1);
|
||||
}
|
||||
.member-role.member[data-v-51006ffb] {
|
||||
color: #67c23a;
|
||||
background: rgba(103, 194, 58, 0.1);
|
||||
}
|
||||
.member-actions-right[data-v-51006ffb] {
|
||||
display: flex;
|
||||
gap: 0.25rem;
|
||||
@@ -1065,6 +1091,10 @@
|
||||
color: #3b86ff;
|
||||
border: 0.03125rem solid #3b86ff;
|
||||
}
|
||||
.demote-admin[data-v-51006ffb] {
|
||||
color: #e6a23c;
|
||||
border: 0.03125rem solid #e6a23c;
|
||||
}
|
||||
.remove-member[data-v-51006ffb] {
|
||||
color: #f56c6c;
|
||||
border: 0.03125rem solid #f56c6c;
|
||||
@@ -1094,6 +1124,78 @@
|
||||
font-size: 0.75rem;
|
||||
padding: 0.4375rem 1rem;
|
||||
}
|
||||
|
||||
/* 搜索结果列表 */
|
||||
.search-result-list[data-v-51006ffb] {
|
||||
margin-top: 0.5rem;
|
||||
border-radius: 0.4375rem;
|
||||
overflow: hidden;
|
||||
background: #f8f9fc;
|
||||
}
|
||||
.search-result-item[data-v-51006ffb] {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0.5625rem 0.625rem;
|
||||
border-bottom: 0.03125rem solid #eee;
|
||||
}
|
||||
.search-result-item[data-v-51006ffb]:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
.search-result-item[data-v-51006ffb]:active {
|
||||
background: rgba(59, 134, 255, 0.05);
|
||||
}
|
||||
.result-avatar[data-v-51006ffb] {
|
||||
width: 2rem;
|
||||
height: 2rem;
|
||||
border-radius: 50%;
|
||||
flex-shrink: 0;
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
.result-default-avatar[data-v-51006ffb] {
|
||||
width: 2rem;
|
||||
height: 2rem;
|
||||
border-radius: 50%;
|
||||
background: linear-gradient(135deg, #3b86ff, #6db3ff);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-shrink: 0;
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
.result-info[data-v-51006ffb] {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.125rem;
|
||||
}
|
||||
.result-name[data-v-51006ffb] {
|
||||
font-size: 0.875rem;
|
||||
color: #333;
|
||||
font-weight: 500;
|
||||
}
|
||||
.result-email[data-v-51006ffb] {
|
||||
font-size: 0.6875rem;
|
||||
color: #999;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.result-add-btn[data-v-51006ffb] {
|
||||
flex-shrink: 0;
|
||||
font-size: 0.75rem;
|
||||
color: #3b86ff;
|
||||
padding: 0.3125rem 0.75rem;
|
||||
border: 0.03125rem solid #3b86ff;
|
||||
border-radius: 0.625rem;
|
||||
}
|
||||
.search-empty[data-v-51006ffb] {
|
||||
margin-top: 0.5rem;
|
||||
text-align: center;
|
||||
font-size: 0.75rem;
|
||||
color: #bbb;
|
||||
padding: 0.625rem 0;
|
||||
}
|
||||
.folder-null[data-v-51006ffb] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@@ -1108,9 +1210,69 @@
|
||||
font-size: 2rem;
|
||||
color: #ddd;
|
||||
}
|
||||
|
||||
/* 删除团队 */
|
||||
.delete-team-section[data-v-51006ffb] {
|
||||
border-top: 0.03125rem solid #eee;
|
||||
padding-top: 0.625rem;
|
||||
margin-top: 0.3125rem;
|
||||
}
|
||||
.delete-team-btn[data-v-51006ffb] {
|
||||
text-align: center;
|
||||
padding: 0.5625rem;
|
||||
font-size: 0.8125rem;
|
||||
color: #e74c3c;
|
||||
background: rgba(231, 76, 60, 0.06);
|
||||
border-radius: 0.4375rem;
|
||||
border: 0.03125rem solid rgba(231, 76, 60, 0.2);
|
||||
}
|
||||
.delete-team-btn[data-v-51006ffb]:active {
|
||||
background: rgba(231, 76, 60, 0.12);
|
||||
}
|
||||
|
||||
/* 修改团队信息 */
|
||||
.edit-team-section[data-v-51006ffb] {
|
||||
border-top: 0.03125rem solid #eee;
|
||||
padding-top: 0.625rem;
|
||||
margin-top: 0.3125rem;
|
||||
}
|
||||
.edit-team-btn[data-v-51006ffb] {
|
||||
text-align: center;
|
||||
padding: 0.5625rem;
|
||||
font-size: 0.8125rem;
|
||||
color: #3b86ff;
|
||||
background: rgba(59, 134, 255, 0.06);
|
||||
border-radius: 0.4375rem;
|
||||
border: 0.03125rem solid rgba(59, 134, 255, 0.2);
|
||||
}
|
||||
.edit-team-btn[data-v-51006ffb]:active {
|
||||
background: rgba(59, 134, 255, 0.12);
|
||||
}
|
||||
.edit-team-form[data-v-51006ffb] {
|
||||
margin-bottom: 0.3125rem;
|
||||
}
|
||||
.form-label[data-v-51006ffb] {
|
||||
font-size: 0.8125rem;
|
||||
color: #666;
|
||||
margin-bottom: 0.25rem;
|
||||
margin-top: 0.5625rem;
|
||||
}
|
||||
.text-btn[data-v-51006ffb] {
|
||||
padding: 0.25rem 0.625rem;
|
||||
border-radius: 0.9375rem;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* ===== 上传文件弹窗 ===== */
|
||||
.upload-path-label[data-v-51006ffb] {
|
||||
font-size: 0.8125rem;
|
||||
color: #666;
|
||||
margin-bottom: 0.3125rem;
|
||||
}
|
||||
.upload-path-hint[data-v-51006ffb] {
|
||||
font-size: 0.6875rem;
|
||||
color: #999;
|
||||
margin-bottom: 0.625rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user