@@ -12,7 +12,13 @@
|
||||
<div v-if="migrationCompleted" class="text-center py-8">
|
||||
<v-icon size="64" color="success" class="mb-4">mdi-check-circle</v-icon>
|
||||
<h3 class="mb-4">{{ t('features.migration.dialog.completed') }}</h3>
|
||||
{{ migrationResult?.message || t('features.migration.dialog.success') }}
|
||||
<p class="mb-4">{{ migrationResult?.message || t('features.migration.dialog.success') }}</p>
|
||||
<v-alert type="info" variant="tonal" class="mb-4">
|
||||
<template v-slot:prepend>
|
||||
<v-icon>mdi-information</v-icon>
|
||||
</template>
|
||||
{{ t('features.migration.dialog.restartRecommended') }}
|
||||
</v-alert>
|
||||
</div>
|
||||
|
||||
<div v-else-if="migrating" class="migration-in-progress">
|
||||
@@ -80,8 +86,11 @@
|
||||
<v-card-actions class="px-6 py-4">
|
||||
<v-spacer></v-spacer>
|
||||
<template v-if="migrationCompleted">
|
||||
<v-btn color="primary" variant="elevated" @click="handleClose">
|
||||
{{ t('core.common.confirm') }}
|
||||
<v-btn color="grey" variant="text" @click="handleClose">
|
||||
{{ t('core.common.close') }}
|
||||
</v-btn>
|
||||
<v-btn color="primary" variant="elevated" @click="restartAstrBot">
|
||||
{{ t('features.migration.dialog.restartNow') }}
|
||||
</v-btn>
|
||||
</template>
|
||||
<template v-else>
|
||||
@@ -96,6 +105,8 @@
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
|
||||
<WaitingForRestart ref="wfr"></WaitingForRestart>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
@@ -103,6 +114,7 @@ import { ref, computed, watch } from 'vue'
|
||||
import axios from 'axios'
|
||||
import { useI18n } from '@/i18n/composables'
|
||||
import ConsoleDisplayer from './ConsoleDisplayer.vue'
|
||||
import WaitingForRestart from './WaitingForRestart.vue'
|
||||
|
||||
const { t } = useI18n()
|
||||
|
||||
@@ -114,6 +126,7 @@ const migrationCompleted = ref(false)
|
||||
const migrationResult = ref(null)
|
||||
const platforms = ref([])
|
||||
const selectedPlatforms = ref({})
|
||||
const wfr = ref(null)
|
||||
|
||||
let resolvePromise = null
|
||||
|
||||
@@ -244,6 +257,15 @@ const getPlatformLabel = (platform) => {
|
||||
return `${name}`
|
||||
}
|
||||
|
||||
// 重启 AstrBot
|
||||
const restartAstrBot = () => {
|
||||
axios.post('/api/stat/restart-core').then(() => {
|
||||
if (wfr.value) {
|
||||
wfr.value.check();
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 打开对话框的方法
|
||||
const open = () => {
|
||||
isOpen.value = true
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
"migratingSubtitle": "Please wait patiently, do not close this window during migration",
|
||||
"migrationError": "Migration failed",
|
||||
"success": "Migration completed successfully!",
|
||||
"completed": "Migration Completed"
|
||||
"completed": "Migration Completed",
|
||||
"restartRecommended": "It is recommended to restart the application for all changes to take effect.",
|
||||
"restartNow": "Restart Now"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
"migratingSubtitle": "请耐心等待,迁移过程中请勿关闭此窗口",
|
||||
"migrationError": "迁移失败",
|
||||
"success": "迁移成功完成!",
|
||||
"completed": "迁移已完成"
|
||||
"completed": "迁移已完成",
|
||||
"restartRecommended": "建议重启应用程序以使所有更改生效。",
|
||||
"restartNow": "立即重启"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user