fix: 解决备份导入失败的问题 (#6228)

pull/6235/head
ssongliu 2024-08-23 22:58:59 +08:00 committed by GitHub
parent 00cc1b62ef
commit c83cfbe8b0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 66 additions and 6 deletions

View File

@ -92,9 +92,36 @@
</div> </div>
</el-drawer> </el-drawer>
<el-dialog
v-model="open"
:title="$t('commons.button.recover') + ' - ' + name"
width="40%"
:close-on-click-modal="false"
:before-close="handleClose"
>
<el-form ref="backupForm" label-position="left" v-loading="loading">
<el-form-item
:label="$t('setting.compressPassword')"
style="margin-top: 10px"
v-if="type === 'app' || type === 'website'"
>
<el-input v-model="secret" :placeholder="$t('setting.backupRecoverMessage')" />
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="handleClose" :disabled="loading">
{{ $t('commons.button.cancel') }}
</el-button>
<el-button type="primary" @click="onHandleRecover" :disabled="loading">
{{ $t('commons.button.confirm') }}
</el-button>
</span>
</template>
</el-dialog>
<OpDialog ref="opRef" @search="search" /> <OpDialog ref="opRef" @search="search" />
</div> </div>
<AppRecover ref="recoverRef" />
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
@ -105,9 +132,8 @@ import { UploadFile, UploadFiles, UploadInstance } from 'element-plus';
import { File } from '@/api/interface/file'; import { File } from '@/api/interface/file';
import DrawerHeader from '@/components/drawer-header/index.vue'; import DrawerHeader from '@/components/drawer-header/index.vue';
import { BatchDeleteFile, CheckFile, ChunkUploadFileData, GetUploadList } from '@/api/modules/files'; import { BatchDeleteFile, CheckFile, ChunkUploadFileData, GetUploadList } from '@/api/modules/files';
import { loadBaseDir } from '@/api/modules/setting'; import { handleRecoverByUpload, loadBaseDir } from '@/api/modules/setting';
import { MsgError, MsgSuccess } from '@/utils/message'; import { MsgError, MsgSuccess } from '@/utils/message';
import AppRecover from '@/views/app-store/installed/recover/index.vue';
const loading = ref(); const loading = ref();
const isUpload = ref(); const isUpload = ref();
@ -115,7 +141,9 @@ const uploadPercent = ref<number>(0);
const selects = ref<any>([]); const selects = ref<any>([]);
const baseDir = ref(); const baseDir = ref();
const opRef = ref(); const opRef = ref();
const recoverRef = ref();
const open = ref();
const currentRow = ref();
const data = ref(); const data = ref();
const title = ref(); const title = ref();
@ -180,16 +208,48 @@ const search = async () => {
}; };
const onRecover = async (row: File.File) => { const onRecover = async (row: File.File) => {
currentRow.value = row;
if (type.value !== 'app' && type.value !== 'website') {
ElMessageBox.confirm(
i18n.global.t('commons.msg.backupHelper', [name.value + '( ' + detailName.value + ' )']),
i18n.global.t('commons.button.backup'),
{
confirmButtonText: i18n.global.t('commons.button.confirm'),
cancelButtonText: i18n.global.t('commons.button.cancel'),
},
).then(async () => {
onHandleRecover();
});
return;
}
open.value = true;
};
const handleBackupClose = () => {
open.value = false;
};
const onHandleRecover = async () => {
let params = { let params = {
source: 'LOCAL', source: 'LOCAL',
type: type.value, type: type.value,
name: name.value, name: name.value,
detailName: detailName.value, detailName: detailName.value,
file: baseDir.value + row.name, file: baseDir.value + currentRow.value.name,
secret: secret.value, secret: secret.value,
recoverType: 'upload', recoverType: 'upload',
}; };
recoverRef.value.acceptParams(params); loading.value = true;
await handleRecoverByUpload(params)
.then(() => {
loading.value = false;
handleClose();
handleBackupClose();
MsgSuccess(i18n.global.t('commons.msg.operationSuccess'));
search();
})
.catch(() => {
loading.value = false;
});
}; };
const uploaderFiles = ref<UploadFiles>([]); const uploaderFiles = ref<UploadFiles>([]);